Oracle 数据库操作实例讲解
- 格式:doc
- 大小:410.00 KB
- 文档页数:11
Oracle 数据库操作实例讲解
一、数据库系统配置
数据库系统配置主要包括初始化参数配置和网络服务配置。
初始化参数的配置方法有以下几种方式:
1、直接更改初始化参数文件。在ORACLE9i和ORACLE10g中参数文件有两种形式,一种是文本格式,一种是二进制格式。数据库启动后,可以通过下列SQL语句查找数据库使用的是哪种格式的初始化参数。
Show parameter spfile;
更改文本格式的初始化参数,可以利用文本编辑工具,如vi 等打开,然后进行编辑。要使编辑后的参数生效,一定要重新启动数据库,并应用此初始化参数文件。
2、命令行修改参数。不能直接使用编辑工具打开二进制格式的初始化参数文件(即使可以打开),这样会损坏参数文件,导致下次数据库不能正常启动。可以通过下面的SQL 语句进行参数修改。
ALTER SYSTEM parameter name =value SCOPE=[BOTH|MEM]
3、使用图形化通过EM console进行修改。登录EM console http://ip address :1158/em 在图形化工具里面,可以看到哪些参数是静态参数(不能修改,修改后要重新启动数据库才能生效),哪些是动态参数(可以直接修改,并生效)。
网络服务配置主要包括侦听(listener)配置和客户端服务(tnsnames)配置。侦听配置在服务器端(安装了ORACLE数据库的服务器),客户端服务配置在需要连接ORACLE数据库的客户机上(当然也可以在服务器端进行配置)。这两个配置文件都可以利用文本编辑工具直接打开修改。修改侦听后,用下列命令把侦听服务重新启动:
$ lsnrctl start
用下列命令查看侦听是否正常:
$lsnrctl status
下面给出实例。
listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/app/10.2)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = /oracle/app/10.2)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.136.70.93)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
tnsnames.ora
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.136.70.93)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =test)
)
)
二、性能调优
1、查找失效对象并修复
SQL> select owner,object_name,object_type from dba_objects where status = ’INVALID’;
SQL> alter object_type object_name complie;
2、查找无用索引并修复
SQL> select owner, index_name from dba_indexes where status='UNUSABLE';
SQL> alter index index_name rebuild online nologging;
3、使用ORACLE指导中心进行调优
首先修改参数statistics_level=typical 主要用于收集数据。
在ORACLE EM中如下图找到指导中心:
在指导中心可以进行SQL调优、内存调优、段调优等。
首先需要收集数据(ADDM),如下图:
SQL优化指导如下图:
可以查找顶级活动、周期性运行的SQL语句等
内存参数调整依据,如下图:
三、备份与恢复
数据库备份与恢复有两种方式,一种是逻辑的,一种是物理的。
逻辑备份是使用命令(exp 和imp)进行备份与恢复。这两个命令使用方式如下:
1. 将数据库TEST完全导出,用户名system 密码test1234 导出到/tmp/alldb.dmp中
exp system/test1234 file = /tmp/alldb.dmp full=y
2. 将数据库中system用户与hr用户的表导出
exp system/test1234 file = /tmp/userdb.dmp owner=(system, hr)
3. 将数据库中的表table1 、table2导出
exp system/test1234 file = /tmp/tabdb.dmp tables=(table1,table2)
4. 将用户HR的表table1 导入数据库
imp system/test1234 fromuser=HR tables=(table1)
5. 将alldb.dmp中的数据全部导入数据库TEST中
imp system/test1234 file=/tmp/alldb.dmp
在ORACLE10g 中,还可以使用另外两个命令(expdp和impdp)进行备份与恢复,这两个命令的功能更强大。这里不讲述实际用法。
物理备份与恢复分为手动的(用户管理的)和RMAN两个方式。
手动进行一致性备份:
SQL>shutdown immediate 关闭数据库
SQL>host cp
SQL>startup 重新启动数据库
一致性备份后手动进行恢复(注意,如果控制文件丢失,则只能恢复到上次备份的状态):SQL>shutdown immediate
SQL>host cp /oracle/app/10.2/flash_recovery_area/files.dbf /oracle/app/10.2/oradata/test/
SQL>startup
手动对打开的数据库进行备份:
SQL>shudown immediate
SQL>startup mount
SQL>alter database archivelog; 将数据库置于归档模式
SQL>alter databse open; 打开数据库
SQL>alter tablespace userdata begin backup;
SQL>host cp /oracle/app/10.2/oradata/test/userdata.dbf /oracle/app/10.2/flash_recovery_area/
SQL>alter tablespace userdata endbackup;
手动进行恢复:
SQL>alter database datafile userdata.dbf offline;
SQL>host cp /oracle/app/10.2/flash_recovery_area/userdata.dbf /oracle/app/10.2/oradata/test/userdata.dbf
SQl> recover datafile /oracle/app/10.2/oradata/test/userdata.dbf
SQL>alter database datafile userdata.dbf online;
手动备份控制文件:
SQL>alter database backup controlfile to ‘/oracle/app/10.2/flash_recovery_area/control1.bkp`;
手动备份控制文件到跟踪文件中:
SQL>alter database backup controlfile to TRACE 备份控制文件到/oracle/app/10.2/admin/test/ 目录下的某个文件(看文件生成时间)中
手动备份初始化文件
SQL>create pfile=’/oracle/app/10.2/db/dbs/initTEST.ora from spfile;