400 likes | 570 Views
Welcome. Oracle 常见问题分析. 王远军 技术工程师 Oracle 中国公司 yjwang@cn.oracle.com. Oracle 常见问题分析. 日程 Oracle7 Server 常见问题 Oracle Tools 常见问题 Oracle Sql*Net 常见问题. 3. Oracle7 Server 常见问题. 怎样查看数据库的字符集 以 Sys 或 System 联接到 Database, 执行 select value from nls_database_parameters
E N D
Oracle 常见问题分析 王远军 技术工程师 Oracle 中国公司 yjwang@cn.oracle.com
Oracle 常见问题分析 • 日程 • Oracle7 Server常见问题 • Oracle Tools常见问题 • Oracle Sql*Net常见问题 3
Oracle7 Server 常见问题 • 怎样查看数据库的字符集 • 以 Sys 或 System 联接到 Database, 执行 select value from nls_database_parameters where name=NLS_CHARACTERSET
Oracle7 Server 常见问题 • 如何改变 DB_Block_Size • 备份数据库 • 在 $ORACLE_HOME/rdbms/install/ rdbms/initx.orc中加入DB_Block_Size=4k • 选择 Create Database Object重建数据库 • 装载数据
Oracle7 Server 常见问题 • 如何增大 max data files 参数 • alter database backup control file to trace • shutdown database in normal • back up database • rename all control files • modify trace as a SQL script as the following:
Oracle7 Server 常见问题 • 如何增大 max data files 参数 (续一) STARTUP NOMOUNT CREATE CONTROLFILE DATABASE "ORA73" NORESETLOGS NOARCHIVELOG MAXLOGFILES 32 MAXLOGMEMBERS 2 MAXDATAFILES 300
Oracle7 Server 常见问题 • 如何增大 max data files 参数 (续二) MAXINSTANCES 8 MAXLOGHISTORY 800 LOGFILE . . . DATAFILE . . . ; ALTER DATABASE OPEN ;
Oracle7 Server 常见问题 • 误删除了一个数据文件怎么办 • 以MOUNT方式启动数据库: STARTUP MOUNT; • 从数据字典中删除该文件 ALTER DATABASE DATAFILE< File_Name > OFFLINE DROP; • 打开数据库 ALTER DATABASE OPEN;
Oracle7 Server 常见问题 • 误删除了一个数据文件怎么办?(续) • 如果该文件所在的表空间还包含其它数据文件要用EXPORT把 其中的数据备份出来 否则直接删除表空间 DROP TABLESPACE <Table_Space>; • 重建表空间,恢复数据。
Oracle7 Server 常见问题 • 怎样改变数据文件的目录? • shutdown database • 把需要移动的文件拷贝到相应的目录 • startup database in mount mode • 执行 alter database rename file file_resource to file_destinetion ; • alter database open;
Oracle7 Server 常见问题 • 怎样直接向磁带卸出数据? • 使用VOLSIZE参数: exp userid=scott/tiger file=/dev/rmt/0 volsize=200M ...
Oracle7 Server 常见问题 • 怎样提高卸出数据的速度? • 使用 compress 命令 • 使用管道功能 Article-ID: <PR:1015589.6> Subject: SCRIPT FOR EXPORTING WITH COMPRESS UNDER UNIX Circulation: ** PUBLIC ** Affected Platforms: - Generic: not platform specific Affected Products: Oracle Server - Enterprise Edition V7 Problem Description: ==================== The following Unix shell script will pipe an Oracle export file through the Unix compress utility to obtain a compressed export dump file. # # EXPORT WITH COMPRESS SCRIPT # --------------------------- # # BEFORE RUNNING THIS SCRIPT, USE the mknod command to create a named pipe # called /dev/PIPE.dmp (mknod is Unix command, PIPE.dmp is an arbitrary name). # Then set environment variables for ORACLE_HOME, ORACLE_SID, and DUMPDIR, as # well as PATH if needed. # If you save the script as, say, exp_comp.sh, type # % exp_comp.sh & # at the Unix prompt to run it. # WARNING: You must have unique names for each pipe if you have # multiple concurrent executions of this script. trap '' 1 # nohup # Set these to appropriate values ORACLE_HOME= ORACLE_SID= DUMPDIR= # Customize PATH if needed PATH=/bin:/usr/bin:${ORACLE_HOME}/bin:/usr/local/bin:/usr/lbin export ORACLE_HOME ORACLE_SID PATH LOGFILE=$DUMPDIR/exp${ORACLE_SID}.log exec >$LOGFILE 2>&1 echo "Exporting $ORACLE_SID database. start `date`" # Customize this as needed exp system/manager GRANTS=Y FULL=Y INDEXES=Y COMPRESS=Y FILE=/dev/PIPE.dmp & compress </dev/PIPE.dmp > $DUMPDIR/exp$ORACLE_SID.dmp.Z &
Oracle7 Server 常见问题 • 当启动一个非正常关闭的 数据库时,出现‘Oracle 正在运行,请关闭它 ’ • 删除 $ORACLE_HOME/dbs/sgadef<sid>.dbf 文件 • 重新启动数据库
Oracle7 Server 常见问题 • 怎样进行数据库的备份 • 备份的方法 • 物理备份 • 逻辑备份
Oracle7 Server 常见问题 • 物理备份 • 物理备份的条件 • 数据库以正常方式关闭 • 同时备份所有相关文件 • 初始化参数文件 • 控制文件 • 日志文件 • 数据文件
Oracle7 Server 常见问题 • 物理备份 ( 续一 ) • 如何检查应备份的文件 • 控制文件 查看 config<sid>.ora文件中control_files参数 • 日志文件 svrmgrl>select * from v$logfile; • 数据文件 svrmgrl>select * from v$datafile;
Oracle7 Server 常见问题 • 逻辑备份 • Export exp owner/pwd • 方式 • 全数据库 • 用户级 • 表级
Oracle7 Server 常见问题 • 逻辑备份 ( 续 ) 基于 archive 的备份 • 启动 archive 方式 • log_archive_start = true • alter database archivelog • 关闭 archive 方式 • log_archive_start = false • alter database noarchivelog
Oracle7 Server 常见问题 • 逻辑备份 ( 续 ) • 基于 archive 的备份 • 作一个完整的数据库备份 • 备份表空间 • 保存备份以来所有日志文件
Oracle7 Server 常见问题 • 如何显示 SGA 区的大小 • svrmgrl>connect internal • svrmgrl>show SGA • 或 • svrmgrl>select* from v$SGA;
Oracle7 Server 常见问题 • 预载 SGA 到物理内存 • 在 init<sid>.ora 中设置 PRE_PAGE_SGA=YES
Oracle7 Server 常见问题 在几套数据库间通过 exp, imp 来传输数据需注意的问题 • 字符集一致 • 设置 NLS_LANG 环境变量
Oracle7 Server 常见问题 在几套数据库间通过 exp,imp 来传输数据需注意的问题 • 保持 exp/imp 的数据字典一致 • 通过 SQL*NET • 重构exp/imp 数据字典 • sqlplus>@$ORACLE_HOME/rdbms/admin/catexp.sql
Oracle7 Server 常见问题 • 如何清理一张表中的数据碎片 • export 时使用compress=Y 参数 • drop table • import table
Oracle7 Server 常见问题 • 如何清理一张表中的数据碎片(续) • 使用 CTAS 创建一个临时表 • Truncate table origin_table • Alter table origin_table storage clause • Insert into origin_table select * from 临时表
Oracle7 Server 常见问题 • 不能使用 motif 方式的 server manager • 确认你是否具有 motif 环境 • login as oracle account • 使用‘su - oracle ’命令注册oracle 用户时 • 设置 DISPLAY 环境变量 • DISPLAY=196.1.1.1:0.0;export DISPLAY • 使用xhost 对终端授权 • xhost +196.1.1.1
Oracle Server 常见问题 • 出现 ORA-1000 错误 “maximum open cursors exceeded” • 增大 open_cursors 参数
Oracle Tools 常见问题 • Dev2k For Windows使用的字符集 • ZHS16CGB231280 • Server • 建库时设置 • NLS_LANG • ORA_NLS32 • PC: PWIN • WINDOWS3.1: ORACLE.INI • WIN95/NT: REGEDIT
Oracle Tools 常见问题 • 怎样 copy windows95 环境下的 oracle 设置 • run regedit, 选择 HKEY_LOCAL_MACHINE • \SOFTWARE\ORACLE • 选择 Registry-->export registry file • 然后 Registry-->import registry file
Oracle Tools 常见问题 • 在 Report 中生成 ASCII 文本输出 • Data modal--> System parameter --> MODE--> datatype=character • Tools-->Tools option-->runtime parameter -->Mode=character
Oracle Tools 常见问题 • Forms中调用Reports 时如何关闭 Report Server • 加 ORACLE_SHUTDOWN=Yes • add_parameter ( list_id, ‘ ORACLE_SHUTDOWN ’, • TEXT_PARAMETER , ‘ Yes’);
Oracle Sql*Net V2 常见问题 • 怎样设置 trace • 在client 端的 sqlnet.ora 中加如下参数: • trace_level_client=admin • trace_file_client=trace1 • trace_directory_client=$ORACLE_HOME/ • network/trace
Oracle Sql*Net V2 常见问题 • 怎样设置 trace ( 续 ) • 在Server 端的 listener.ora 中加如下参数 : • trace_level_listener=admin • trace_file_listener=list • trace_directory_listener=$ORACLE_HOME • /network/trace
Oracle Sql*Net V2 常见问题 • OPS环境下自动识别另一个节点 • 在tnsnames.ora中加入另一节点 • 各个节点的SID必须相同 • 例如:
Oracle Sql*Net V2 常见问题 • OPS环境下自动识别另一个节点 (续 ) (address_list= (address= (protocol=tcp) (host=152.69.64.148) (port=1521) ) 。。。 //多个ADDRESSES ) (connect_data=(sid=orcl) )
Oracle Sql*Net V2 常见问题 • OPS环境下自动识别另一个节点 (续 ) • 若SID不一致,则必须用Sql*NetV2.3以上。 文件可写为: sample = (DESCRIPTION_LIST= (description=
Oracle Sql*Net V2 常见问题 • OPS环境下自动识别另一个节点 (续 ) (address_list= (address= (protocol=tcp) (host=152.69.64.148) (port=1521) ) ) (connect_data=(sid=orcl) ) ) 。。。//多个DESCRIPTION
总 结 • Oracle7 Server常见问题 • Oracle Tools常见问题 • Oracle Sql*Net常见问题