1、查询当前的字符集
SQL>select userenv('language') from dual
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.WE8ISO8859P1
sql>alter system set cluster_database=false scope=spfile sid='jscn1'
红色部分对于单实例的是不要加的,对于rac来说必须加上,不然会报
ORA-12720: operation requires database is in EXCLUSIVE mode
2、停止数据库(rac1和rac2都要停止)
SQL>shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
3、启动数据库(只在rac1上面 *** 作)
SQL>startup nomount
ORACLE instance started.
Total System Global Area 1577058304 bytes
Fixed Size 2084264 bytes
Variable Size 436208216 bytes
Database Buffers 1124073472 bytes
Redo Buffers 14692352 bytes
SQL>Alter database mount exclusive
Database altered.
SQL>Alter system enable restricted session
System altered.
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0
System altered.
SQL>Alter database open
Database altered.
4、修改字符集
SQL>ALTER DATABASE character set INTERNAL_USE zhs16gbk
sql>alter system set cluster_database=true scope=spfile sid='jscn1'
5、验证(两个节点都要测)
Database altered.
SQL>SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>startup
ORACLE instance started.
Total System Global Area 1577058304 bytes
Fixed Size 2084264 bytes
Variable Size 436208216 bytes
Database Buffers 1124073472 bytes
Redo Buffers 14692352 bytes
Database mounted.
Database opened.
SQL>select userenv('language') from dual
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
6、启动rac2,验证rac2的字符集(废话,公用一个数据库,当然一样了)
(1)startup(用sys用户或者其他拥有启动数据库权限的用户登录数据库软件,然后执行该命令即可,如果存在多个实例,请在启动前确认SID),数据库有三个状态nomount,mount,和open,默认开启到open,如果开启到另外两个状态,那么可以通过alter命令改变状态。(2)如果是rac中启停数据库节点,那么有专门的命令srvcrl(这个仅仅是命令的 *** 作符,后面有参数的,参数我就不写了,具体可以查一下,网上很多与偶内容的),另外还有crscrl(启停crs服务的命令,同样也是 *** 作符,后面有参数的,这里也不写了,自己查一下就可以了)
(3)启动数据库还有一个命令就是启动监听,lsnrctl命令(后面同样有参数,能启动停止,也能查询监听状态,这个监听的基本命令)
恢复单个数据文件,使用图形界面或者rman命令都可以 *** 作。如果数据库的所有文件都丢失了或者异机恢复,建议使用rman命令进行 *** 作。这里主要讲述图形界面恢复单个数据文件的 *** 作以及使用图形界面创建重复数据库。一、使用向导恢复单个数据文件:
在networker管理窗口,配置---组里面,选择要恢复的组,右击选择恢复:
在出现的画面中选择第二项:perform restore and recover to the original target database(恢复原来的目标数据库)
接着的画面里会要求输入有关目标数据库以及目录数据库(如果有)的相关信息:
紧接着选择恢复数据文件还是日志文件,这里选择恢复数据文件:
选择要恢复的数据文件,下一步
指定数据文件的位置,这里是+DATA:
接着会出现恢复的rman脚本,根据需要进行编辑:
紧接着会要求指定客户端以及脚本的存放位置:
点击创建,会提示手工执行rman脚本进行恢复 *** 作。这里注意,使用此向导创建的脚本文件,直接执行会报用户或者密码错误,访问被拒绝,因此要将里面的*号用用户的正确密码进行替换,然后在执行此脚本。
磁带库的状态:
完了之后,可以查看rman.dd.log日志文件,是否成功。
二、使用向导创建重复数据库:
该向导创建的数据库复制脚本使用 RMAN duplicate 命令来创建重复数据库,并保留原始数据库。重复数据库可以是原始数据库的相同副本,也可以仅包含原始表空间的一个子集。这个分两种情况:
? 如果在与原始数据库相同的主机上创建重复数据库,也会在本地主机上生成RMAN 脚本。在此情况下,该向导会请求与原始数据库不同的重复数据库、数据文件和重做日志名称。
? 如果在远程主机上创建重复数据库,则会根据在向导中的指定,在本地或远程主机上生成 RMAN 脚本。在此情况下,该向导会请求与原始数据库不同的重复数据库名称。(数据文件和重做日志名称可与原始数据库相同。)
这里的db01是目录数据库,db02是目标数据库,db03是要创建的重复数据库。在创建重复数据库之前,要做以下几步:
1、创建db03的pfile以及spfile:
这个使用db02的spfile创建db03的pfile。完成后,编辑initdb03.ora文件,将里面的db02替换为db03,保存退出。
2、创建相应的目录:
注意:如果使用的是ASM,则还要在ASM上创建db03目录:
此步骤如果没执行的话,在恢复的时候会报错的。
3、密码文件的创建:
4、使用db03的pfile启动数据库实例db03至nomount状态。
到此就可以使用rman手工进行创建了。
使用rman连接之后,会看到db03处于nomount状态。
接着就可以使用执行以下命令进行创建了。
这里主要介绍networker图形界面的 *** 作,有兴趣的朋友可以使用命令行进行 *** 作。
5、运行networker向导进行相关信息设置:
如果是client机器是远程的话,必须将其加入/etc/hosts文件里,然后指定客户端的主机名.
这里输入目录数据库以及原来目标数据库的相关信息。
重复数据库的相关信息。
选择要恢复的对象,这里是整个数据库。
选择数据文件以及日志文件的位置。输入后,点击change按钮进行更改。
这里定义通道个数以及恢复时间选项,默认即可。
rman脚本内容。
指定脚本的保存位置以及文件名。
概要信息,点击创建开始创建rman脚本。
完成之后,编辑创建的脚本文件,将里面的用户密码用真实密码替换。还要重新定义数据文件名称以及日志文件名称。脚本内容如下:
以oracle身份运行此脚本。在执行之前,确保没有任何db03的连接会话,否则会报错的。
在这还遇到一个问题,使用sqlplus连接的时候报如下错误:
不论连接哪个数据实例,都报类似的错误,上网查了查,因为监听器启动的时候动态注册实例的,解决办法是把动态的参数设置为静态的参数,重启监听器即可。添加的内容如下:
其中的SID=DESC是手工添加上去的。tnsnames.ora是在SERVICE_NAME下面增加(UR=A)字段即可。如果是多个实例,则每个实例都要增加。完了之后重启监听器即可。
6、运行脚本,创建重复数据库:
执行完成后db03数据库会自动打开的,详细过程可以查看dump.log文件。查看下数据文件以及日志文件信息:
感觉使用这个图形界面很费劲,还不如直接敲命令方便,呵呵。
补充于2010.11.13:
上述有个错误,就是initdb03.ora中,所定义的两个控制文件名称是相同的,这个是由于本人的疏忽所造成的。不过,在创建的过程中没什么问题。当我重启了db03后就报控制文件方面的错误了。
具体的内容你可以在这里面找一下,里面涉及到了DG RAC 数据库调优这些!
http://www.wyzc.com/Course/Course/showAction/id/13762?tg=ZrHfnouF=
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)