srvctl 是否能够将RAC数据库rac像单实例数据库rac的方式一步一步启动

博客访问: 1237892
博文数量: 226
注册时间:
认证徽章:
为了目标,勇往直前
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
发布时间: 10:41:37
安装RAC是一个比较耗时,并且容易出错的过程。最重要的阶段是安装前的准备,准备工作越充分,安装就会越顺利。在这个阶段对硬件、软件进行一系列的配置,如配置存储、网络、参数、权限等步骤繁多,环环相扣,一样都不能马虎。......
阅读(8455) | 评论(0) | 转发(2)
给主人留下些什么吧!~~
gl5747:期待新文发布
多谢支持与鼓励!
期待新文发布
请登录后留言。Oracle RAC中Srvctl命令详细说明
SRVCTL是ORACLEi RAC集群配置管理的工具。本文是对SRVCTL的所有命令进行详细说明的一篇参考文档。    SRVCTL Add    添加数据库或实例的配置信息。在增加实例中,与-i一起指定的名字应该与INSTANCE_NAME 和 ORACLE_SID参数匹配。    srvctl add database -d database_name [-m domain_name] -o oracle_home [-s spfile]    srvctl add instance -d database_name -i instance_name -n node_name    表- SRVCTL Add命令详细选项    命令  选项    -m   数据库域名 格式如&&    -m 选项指定的数据库域名必须匹配数据库INIT.ORA或者SPFILE中DB_DOMAIN 和DB_NAME参数。在增加数据库时,-d指定的数据库名必须与DB_NAME参数匹配     -n   实例节点名    -o   $ORACLE_HOME(用来确定lsnrctl和Oracle等命令路径)    -s   SPFILE 文件名    实例:添加一个新的数据库    srvctl add database -d mydb -o /ora/ora    实例:向数据库添加实例    srvctl add instance -d mydb -i mydb0 -n gm0    srvctl add instance -d mydb -i mydb0 -n gm0    srvctl add instance -d mydb -i mydb0 -n gm0    SRVCTL Config    显示保存在SRVM配置文件中的配置信息    srvctl config database    显示数据库配置列表    srvctl config database -d database_name    数据库配置信息显示的格式:    nodename instancename oraclehome    nodename instancename oraclehome  
  实例:显示数据库配置信息    srvctl config database -d mydb    SRVCTL Getenv    getenv操作用来从SRVM配置文件中获取与显示环境变量    srvctl getenv database -d database_name [-t name[,name,&&]]    srvctl getenv instance -d database_name -i instance_name [-t name[,name,&&]]    实例:列出数据库的所有环境变量    srvctl getenv database -d mydb    SRVCTL Modify    修改实例的节点配置信息。这些修改会在程序下次重新启动后生效。修改后的信息将永久保存。    srvctl modify instance -d database_name -i instance_name -n node_name    实例:修改实例到另一个节点    srvctl modify instance -d mydb -n my_new_node    SRVCTL Remove    这是用来删除SRVM库中配置信息的命令。对象相关的环境设置也同样删除。如果你未使用强制标志(-f),ORACLE将提示你确认是否删除。
    使用强制选项(-f),删除操作将不进行提示    srvctl remove database -d database_name [-f]    srvctl remove instance -d database_name -i instance_name [-f]    SRVCTL Remove命令详细选项    -f 强制删除应用时不进行确认提示    实例:删除数据库    srvctl remove database -d mydb    实例:删除数据库实例    srvctl remove instance -d mydb -i mydb0    srvctl remove instance -d mydb -i mydb0    srvctl remove instance -d mydb -i mydb0    SRVCTL Setenv    设置SRVM配置文件中的环境变量值。    srvctl setenv database -d database_name -t name=value [,name=value,&&]    srvctl setenv instance -d database_name [-i instance_name] -t name=value [,name=value,&&]    实例:设置数据库环境变量
    srvctl setenv database -d mydb -t LANG=en    SRVCTL Start    启动数据库,所有实例或指定的实例,及启动所有相关未启动的监听。    注:    对于start命令和其它一些可以使用连接字符串的操作,如果你不提供连接字符串,那么ORACLE会使用&/ as sysdba&在实例上执行相关的操作。另外,要执行类似的操作,你必须是OSDBA组的成员。关于更多的OSDBA组权限信息,请参考ORACLEi的安装指南。    srvctl start database -d database_name [-o start_options] [-c connect_string]    srvctl start instance -d database_name -i instance_name [,instance_name-list] [-o start_options] [-c connect_string]    表- SRVCTL Start命令详细选项    命令  选项    -o   在SQL*Plus直接传递的startup命令选项,可以包括PFILE    -c   使用SQL*Plus连接数据库实例的连接字符串    实例:启动数据库及所有的实例
    srvctl start database -d mydb    实例:启动指定的实例    srvctl start instance -d mydb -i mydb,mydb    SRVCTL Status    显示指定数据库的当前状态    srvctl status database -d database_name    srvctl status instance -d database_name -i instance_name [,instance_name-list]    实例:显示数据和所有实例状态    srvctl status database -d mydb    实例:显示指定实例的状态    srvctl status instance -d mydb -i mydb,mydb    SRVCTL Stop    停止数据库所有实例可者指定实例    srvctl stop database -d database_name [-o stop_options] [-c connect_string]    srvctl stop instance -d database_name -i instance_name [,instance_name_list] [-o stop_options][-c connect_string]    表- SRVCTL Stop命令详细选项    命令  选项     -c   使用SQL*Plus连接数据库实例的连接字符串    -o   在SQL*Plus直接传递的shutdown命令选项    实例:停止数据库所有的实例    srvctl stop database -d mydb    实例:停止指定实例    srvctl stop instance -d mydb -i mydb    SRVCTL Unsetenv    取消SRVM配置文件中环境变量定义值    srvctl unsetenv database -d database_name-t name[,name,&&]    srvctl unsetenv instance -d database_name[-i instance_name] -t name[,name,&&]    实例:取消环境变量,回到缺省值    srvctl unsetenv database -d mydb -t CLASSPATH    使用SRVCONFIG导入和导出RAW设备配置信息    你可使用SRVCONFIG导入和导出RAW设备配置信息,不管配置文件是在集群文件系统上还是在RAW设备上。你可以使用这种方法来备份与恢复SRVM配置信息。    例如:    下面的命令用来导出配置信息的内容到你指定文件名的文本文件中。     srvconfig -exp file_name    下面的命令用来从指定文本文件中导入配置信息到到你运行命令的RAC环境配置信息库。    srvconfig -imp file_name
核实 RAC 集群/数据库配置
应在集群的所有节点上执行以下 RAC 核实检查!对于本指南,我将只从 linux1 中执行这些检查。
本节提供了几个可用于验证 Oracle RAC 10g 配置的 srvctl 命令和 SQL 查询。
有五个为 SRVCTL 定义的节点级任务:
添加和删除节点级应用程序
设置和取消设置节点级应用程序的环境
管理节点应用程序
管理 ASM 实例
启动和停止一组包含虚拟 IP 地址、监听器、Oracle 通知服务和 Oracle 企业管理器代理的程序(出于维护目的)。
所有实例和服务的状态
$ srvctl status database -d orcl
Instance orcl1 is running on node linux1
Instance orcl2 is running on node linux2
单个实例的状态
$ srvctl status instance -d orcl -i orcl2
Instance orcl2 is running on node linux2
在数据库全局命名服务的状态
$ srvctl status service -d orcl -s orcltest
Service orcltest is running on instance(s) orcl2, orcl1
特定节点上节点应用程序的状态
$ srvctl status nodeapps -n linux1
VIP is running on node:linux1
GSD is running on node:linux1
Listener is running on node:linux1
ONS daemon is running on node:linux1
ASM 实例的状态
$ srvctl status asm -n linux1
ASM instance +ASM1 is running on node linux1.
列出配置的所有数据库
$ srvctl config database
显示 RAC 数据库的配置
$ srvctl config database -d orcl
linux1 orcl1 /u01/app/oracle/product/10.1.0/db_1
linux2 orcl2 /u01/app/oracle/product/10.1.0/db_1
显示指定集群数据库的所有服务
$ srvctl config service -d orcl
orcltest PREF:orcl2 orcl1 AVAIL:
显示节点应用程序的配置 -(VIP、GSD、ONS、监听器)
$ srvctl config nodeapps -n linux1 -a -g -s -l
VIP exists.:/vip-linux1/192.168.1.200/255.255.255.0/eth0:eth1
GSD exists.
ONS daemon exists.
Listener exists.
显示 ASM 实例的配置
$ srvctl config asm -n linux1
+ASM1 /u01/app/oracle/product/10.1.0/db_1
集群中所有正在运行的实例
, instance_number inst_no
, instance_name inst_name
, parallel
, database_status db_status
, active_state state
, host_name host
FROM gv$instance
ORDER BY inst_
INST_NO INST_NAME
PAR STATUS
-------- -------- ---------- --- ------- ------------ --------- -------
位于磁盘组中的所有数据文件
select name from v$datafile
select member from v$logfile
select name from v$controlfile
select name from v$
-------------------------------------------
+ORCL_DATA1/orcl/controlfile/current.256.1
+ORCL_DATA1/orcl/datafile/indx.269.1
+ORCL_DATA1/orcl/datafile/sysaux.261.1
+ORCL_DATA1/orcl/datafile/system.259.1
+ORCL_DATA1/orcl/datafile/undotbs1.260.1
+ORCL_DATA1/orcl/datafile/undotbs1.270.1
+ORCL_DATA1/orcl/datafile/undotbs2.263.1
+ORCL_DATA1/orcl/datafile/undotbs2.271.1
+ORCL_DATA1/orcl/datafile/users.264.1
+ORCL_DATA1/orcl/datafile/users.268.1
+ORCL_DATA1/orcl/onlinelog/group_1.257.1
+ORCL_DATA1/orcl/onlinelog/group_2.258.1
+ORCL_DATA1/orcl/onlinelog/group_3.265.1
+ORCL_DATA1/orcl/onlinelog/group_4.266.1
+ORCL_DATA1/orcl/tempfile/temp.262.1
15 rows selected.
属于&ORCL_DATA1&磁盘组的所有 ASM 磁盘
SELECT path
v$asm_disk
group_number IN (select group_number
from v$asm_diskgroup
where name = 'ORCL_DATA1');
----------------------------------
此时,我们已经完全安装并配置了 Oracle RAC 10g 并拥有了一个功能完善的集群化数据库。
至此完成所有工作后,您可能会问&那我又怎样启动和停止服务呢?&如果您遵循了本指南中的说明,则所有服务(包括 CRS、所有 Oracle 实例、企业管理器数据库控制台等)应在 Linux 节点每次重新引导时自动启动。
但有时您可能想要关闭某个节点,然后手动重新启动它。或者,您可能发现企业管理器没有而需要启动它。本节提供了启动和停止集群环境的命令(使用 SRVCTL)。
确保您是以 oracle UNIX 用户登录的。我们将从 linux1 运行本节中的所有命令:
# su - oracle
$ hostname
停止 Oracle RAC 10g 环境
第一步是停止 Oracle 实例。当此实例(和相关服务)关闭后,关闭 ASM 实例。最后,关闭节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。
$ export ORACLE_SID=orcl1
$ emctl stop dbconsole
$ srvctl stop instance -d orcl -i orcl1
$ srvctl stop asm -n linux1
$ srvctl stop nodeapps -n linux1
启动 Oracle RAC 10g 环境
第一步是启动节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。当成功启动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。
$ export ORACLE_SID=orcl1
$ srvctl start nodeapps -n linux1
$ srvctl start asm -n linux1
$ srvctl start instance -d orcl -i orcl1
$ emctl start dbconsole
使用 SRVCTL 启动/停止所有实例
启动/停止所有实例及其启用的服务。我只是觉得有意思就把此步骤作为关闭所有实例的一种方法加进来了!
$ srvctl start database -d orcl
$ srvctl stop database -d orcl
看过本文的人也看了:
我要留言技术领域:
你已经自动关注本知识库了哦!
确定要取消收藏吗?
删除图谱提示
你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示
无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示
你确定要删除该知识节点吗?oracle单实例数据库转换为RAC数据库-Oracle教程-数据库-壹聚教程网oracle单实例数据库转换为RAC数据库
单实例数据库转换为RAC数据库我们暂时没有找到通过智能化进行处理了,下面介绍的是手工进行转换了,希望这篇文章可以为大家带来帮助的呀。
测试目的: 单实例转换为RAC数据库
测试环境:Oracle 11.2.0.4
测试方法:手工转换
首先,安装一套RAC环境,并把单实例数据库通过通过rman还原到这个环境(通常如果是生产环境,我们会搭建从RAC到单实例数据库的ADG,以减少停机时间)。
然后生成一个源库(单实例数据库)spfile:
startup pfile=/home/oracle/lunar/spfile.lunardb.tmp
08:07:25 sys@lunardb&show parameter spfile
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&& VALUE
------------------------------------ ----------- ------------------------------
spfile&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& string
08:08:38 sys@lunardb&
注意检查tnsnames.ora中用于local_listener参数的两个配置条目是否正确:
LISTENER_RAC1=(ADDRESS = (PROTOCOL = TCP)(HOST = dm0101-)(PORT = 1521))&&&&&&&
LISTENER_RAC2=(ADDRESS = (PROTOCOL = TCP)(HOST = dm0102-)(PORT = 1521))
修改刚才备份的pfile文件(/home/oracle/lunar/spfile.lunardb.tmp),添加RAC相关配置:
*.audit_file_dest='/u01/app/oracle/admin/lunardb/adump'
*.audit_trail='NONE'
*.compatible='11.2.0.3.0'
*.control_files='+DATADG/lunardb/control01.ctl','+DATADG/lunardb/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_files=2000
*.db_name='lunardb'
*.db_recovery_file_dest='+RECODG'
*.db_recovery_file_dest_size=
*.db_unique_name='lunardb'
*.deferred_segment_creation=FALSE
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=lunardbXDB)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=lunardb'
*.log_archive_dest_state_1='ENABLE'
*.open_cursors=500
*.pga_aggregate_target=
*.processes=500
*.remote_login_passwordfile='EXCLUSIVE'
*.resource_manager_plan=''
*.session_cached_cursors=2000
*.sga_target=0
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
#*.use_large_pages='ONLY'
*.db_cache_size=3g
*.shared_pool_size=3g
*.streams_pool_size=28m
*.java_pool_size=200m
*.log_buffer=
*.job_queue_processes=20
*.cluster_database=true
*.cluster_database_instances=2
*.undo_management=AUTO
*.db_create_file_dest='+DATADG'
*.db_create_online_log_dest_1='+RECODG'
lunardb1.undo_tablespace='UNDOTBS1'
lunardb2.undo_tablespace='UNDOTBS2'
lunardb1.instance_number=1
lunardb2.instance_number=2
lunardb1.instance_name=lunardb1
lunardb2.instance_name=lunardb2
lunardb1.thread=1
lunardb2.thread=2
lunardb1.local_listener=LISTENER_RAC1
lunardb2.local_listener=LISTENER_RAC2
使用这个pfile启动数据库:
08:26:59 @&startup pfile=/home/oracle/lunar/spfile.lunardb.tmp
ORACLE instance started.
Total System Global Area&&&&&&
Fixed Size&&&&&&&&&&&&&&&&&&&&&&& 2266064 bytes
Variable Size&&&&&&&&&&&&&&&&&
Database Buffers&&&&&&&&&&&&&&
Redo Buffers&&&&&&&&&&&&&&&&&&&&
Database mounted.
Database opened.
08:27:30 @&
添加thread2:
08:27:30 @&alter database add logfile thread 2
08:28:16&& 2&&& group 17& ('+RECODG') size 1024m,
08:28:16&& 3&&& group 18& ('+RECODG') size 1024m,
08:28:16&& 4&&& group 19& ('+RECODG') size 1024m,
&&&&&&& group 20& ('+RECODG') size 1024m,
08:28:16&& 5& 08:28:16&& 6&&&&& group 21& ('+RECODG') size 1024m,
08:28:16&& 7&&& group 22& ('+RECODG') size 1024m,
&&&&&&& group 23& ('+RECODG') size 1024m,
08:28:16&& 8& 08:28:16&& 9&&&&& group 24& ('+RECODG') size 1024m,
&&&&&&& group 25& ('+RECODG') size 1024m,
08:28:16& 10& 08:28:16& 11&&&&& group 26& ('+RECODG') size 1024m,
08:28:16& 12&&& group 27& ('+RECODG') size 1024m,
&&&&&&& group 28& ('+RECODG') size 1024m,
08:28:16& 13& 08:28:16& 14&&&&& group 29& ('+RECODG') size 1024m,
08:28:16& 15&&& group 30& ('+RECODG') size 1024m,
08:28:16& 16&&& group 31& ('+RECODG') size 1024m,
08:28:16& 17&&& group 32& ('+RECODG') size 1024m
;08:28:16& 18&
Database altered.
Elaed: 00:00:28.51
08:28:46 @&
添加实例2的undo表空间:
08:28:46 @&CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '+DATADG' SIZE 10480&&&&&&&
Tablespace created.
Elapsed: 00:00:09.87
08:29:11 @&
启用实例2(thread2):
08:29:11 @&alter database enable public thread 2;
Database altered.
Elapsed: 00:00:00.59
08:29:29 @&
创建spfile:&p&&/p&
&pre class=&brush: title: ; notranslate& title=&&&08:33:58 @&create spfile='+DATADG' from pfile='/home/oracle/lunar/spfile.lunardb.tmp';
File created.
Elapsed: 00:00:00.21
08:35:30 @&
&p&使用grid用户查看:&/p&
&pre class=&brush: title: ; notranslate& title=&&&ASMCMD& ls
ASMCMD& pwd
+datadg/lunardb/PARAMETERFILE
&p&修改initlunardb1.ora 文件:&/p&
&pre class=&brush: title: ; notranslate& title=&&&[oracle@dm01db01 dbs]$ cat initlunardb1.ora
SPFILE='+datadg/lunardb/PARAMETERFILE/spfile.31'
[oracle@dm01db01 dbs]$
&p&检查数据库:&/p&
&pre class=&brush: title: ; notranslate& title=&&&08:42:07 sys@lunardb&show parameter spfile
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&& VALUE
------------------------------------ ----------- ------------------------------
spfile&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& string&&&&& +DATADG/lunardb/parameterfile/spf
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ile.31
08:42:11 sys@lunardb&show parameter cluster
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&& VALUE
------------------------------------ ----------- ------------------------------
cluster_database&&&&&&&&&&&&&&&&&&&& boolean&&&& TRUE
cluster_database_instances&&&&&&&&&& integer&&&& 2
cluster_interconnects&&&&&&&&&&&&&&& string
08:42:14 sys@lunardb&
&p&执行@?/rdbms/admin/catclust.sql,这个过程按照文档即可,没啥说的,执行完了检查日志,看看是否有报错。&br&
然后启动数据库,检查2个数据库实例是否都正常了&/p&
&pre class=&brush: title: ; notranslate& title=&&&SYS@lunardb2&startup
ORACLE instance started.
Total System Global Area&&&&&&
Fixed Size&&&&&&&&&&&&&&&&&&&&&&& 2266064 bytes
Variable Size&&&&&&&&&&&&&&&&&
Database Buffers&&&&&&&&&&&&&&
Redo Buffers&&&&&&&&&&&&&&&&&&&&
Database mounted.
Database opened.
SYS@lunardb2& * from v$active_
&&&& INST_NUMBER INST_NAME
---------------- ------------------------------------------------------------------------------------------------------------------------
&&&&&&&&&&&&&& 1 :lunardb1
&&&&&&&&&&&&&& 2 :lunardb2
Elapsed: 00:00:00.00
SYS@lunardb2&
SYS@lunardb2&show parameter spfile
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&& VALUE
------------------------------------ ----------- ------------------------------
spfile&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& string&&&&& +DATADG/lunardb/parameterfile/spf
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ile.31
SYS@lunardb2&
&p&把数据库实例添加到CRS中:&/p&
&pre class=&brush: title: ; notranslate& title=&&&[oracle@dm01db01 ~]$ srvctl config database -d lunardb
PRCD-1120 : The resource for database lunardb could not be found.
PRCR-1001 : Resource ora.lunardb.db does not exist
[oracle@dm01db01 ~]$
[oracle@dm01db01 ~]$ srvctl add database -d lunardb -o /u01/app/oracle/product/11.2.0.4/dbhome_1
[oracle@dm01db01 ~]$ srvctl add instance -d lunardb -n dm01db01 -i lunardb1
[oracle@dm01db01 ~]$ srvctl add instance -d lunardb -n dm01db02 -i lunardb2
[oracle@dm01db01 ~]$ srvctl config database -d lunardb
Database unique name: lunardb
Database name:
Oracle home: /u01/app/oracle/product/11.2.0.4/dbhome_1
Oracle user: oracle
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: lunardb
Database instances: lunardb1,lunardb2
Disk Groups:
Mount point paths:
Database is administrator managed
[oracle@dm01db01 ~]$
[oracle@dm01db01 ~]$ srvctl modify database -d lunardb -a DATADG,RECODG
[oracle@dm01db01 ~]$ srvctl modify database -d lunardb -p '+DATADG/lunardb/parameterfile/spfile.31'
[oracle@dm01db01 ~]$ srvctl config database -d lunardb
Database unique name: lunardb
Database name:
Oracle home: /u01/app/oracle/product/11.2.0.4/dbhome_1
Oracle user: oracle
Spfile: +DATADG/lunardb/parameterfile/spfile.31
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: lunardb
Database instances: lunardb1,lunardb2
Disk Groups: DATADG,RECODG
Mount point paths:
Database is administrator managed
[oracle@dm01db01 ~]$
上一页: &&&&&下一页:相关内容博客访问: 1237894
博文数量: 226
注册时间:
认证徽章:
为了目标,勇往直前
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
给主人留下些什么吧!~~
gl5747:期待新文发布
多谢支持与鼓励!
期待新文发布
请登录后留言。nt$srvctlstartinst-dtest;带的方式不太可行,常出错;connectsys/test@testrac1;/data1/backup/%U';4&;------------------------;
nt$ srvctl start inst -d testrac -i testrac2 -o mount$ rman target /恢复管理器: Release 10.2.0.3.0 - Production on 星期四 5月 17 13:33:02 2007Copyright (c) , Oracle. All rights reserved.已连接到目标数据库: TESTRAC (DBID=, 未打开)RMAN& run2& {3& allocate channel c1 device type sbt connect sys/test@testrac1;4& allocate channel c2 device type sbt connect sys/test@testrac2;5&6& restore archivelog sequence between 205 and 208 thread 1 archivelog sequence between 123 and 126 thread 2;7& }首先关闭数据库,然后将两个实例都启动到mount状态,然后通过RMAN进行恢复。RMAN& host 'rcp racnode1:/data1/archivelog/* /data1/archivelog';主机命令完成RMAN& run2& {3& allocate channel c14&5& }--memo:需要注意的是,如果按以下脚本尝试在只一个实例上恢复所有的日志,将会出现错误:xxxRMAN& run { allocate channel c1 allocate channel c2restore archivelog sequence between 205 and 208 thread 1; restore archivelog sequence between 123 and 126 thread 2;}--Q:restore archivelog sequence between 205 and 208 thread 1; restore archivelog sequence between 123 and 126 thread 2;我想把数据库恢复到最新状态,把上面两名替换成&re&这名可以吗?--A:restore archivelog all会恢复所有的归档。其实对于分rac数据库,根本没有必要去restore archivelog,直接recover,Oracle自动会去找到合适的archivelog去恢复。--Q:请教那你是怎么知道的要恢复时候,只需要指定between 205 and 208 thread 1;between 123 and 126 thread 2;而你在文章里介绍:对于带库的恢复过程,其实和上一篇文章中介绍的恢复方法没有什么区别。首先仍然是先备份现有的所有日志文件:备了1-207,1-208,以及备了2-125,2-126--A:备份在恢复的时候需要的归档日志文件为:从备份开始时刻Oracle的当前日志,到备份结束后的最后一个归档。这些日志是必须的,但是一般都是为了恢复到最后时刻,因此,归档日志的最高线就是目前最后一个归档RMAN备份恢复――RAC环境数据库的备份(五):http://yangtingkun.itpub.net/post/468/288557这篇介绍RAC本地磁盘备份集如何备份到磁带上。很多时候,为了性能考虑,会将最近的备份在本地磁盘上保留一段时间。也就是说,在备份的时候,首先备份到本地磁盘上,然后在备份到带库中。但是这种方式对于RAC环境并非是那么简单。由于备份集和Oracle数据库的数据文件、日志文件不同。Oracle并不能区分备份集存储在那个实例的节点上,因此,即使配置了CONNECT连接,下面这段RMAN脚本在备份时经常报出错误而使备份失败:---这段直接备份到磁带
带的方式不太可行,常出错。RMAN& run2& {3& allocate channel c1 device type sbt connect sys/test@testrac1;4& allocate channel c2 device type sbt connect sys/test@testrac2;5& backup backupset 6& }为了解决这个问题,必须通过crosscheck命令使得Oracle了解结果集的分布情况,完整的步骤如下:$ rman target /恢复管理器: Release 10.2.0.3.0 - Production on 星期五 5月 18 16:51:33 2007Copyright (c) , Oracle. All rights reserved.连接到目标数据库: TESTRAC (DBID=)RMAN& run2& {3& allocate channel c1 device type disk format '/data1/backup/%U' connect sys/test@testrac1;4& allocate channel c2 device type disk format '/data1/backup/%U' connect sys/test@testrac2;5& backup database plus archive6& }备份到磁盘后,开始将磁盘上的备份集备份到带库中:RMAN& allocate channel for maintenance device type disk format '/data1/backup/%U' connect sys/test@testrac1;RMAN& crosscheck backupRMAN& run2& {3& allocate channel c1 device type sbt connect sys/test@testrac1;4& backup backupset 5& }RMAN& allocate channel for maintenance device type disk format '/data1/backup/%U' connect sys/test@testrac2;RMAN& crosscheck backupRMAN& run2& {3& allocate channel c2 device type sbt connect sys/test@testrac2;4& backup backupset 5& }至此,备份集以及成功的备份到带库上。RMAN备份恢复――RAC环境数据库的备份(六):http://yangtingkun.itpub.net/post/468/288973这篇简单介绍RAC本地磁盘备份集备份到磁带后的恢复问题。其实本地的备份集如果备份到了带库上,那么就和直接备份到带库上的备份没有什么区别。整个恢复过程如下:$ srvctl stop db -d testrac$ srvctl start inst -d testrac -i testrac1 -o mount$ srvctl start inst -d testrac -i testrac2 -o mount保证两个实例都启动到mount状态,就可以进行数据文件的还原了,仍然是两个实例同时进行还原操作:$ rman target /恢复管理器: Release 10.2.0.3.0 - Production on 星期一 5月 21 15:22:01 2007Copyright (c) , Oracle. All rights reserved.已连接到目标数据库: TESTRAC (DBID=, 未打开)RMAN& run2& {3& allocate channel c1 device type sbt connect sys/test@testrac1;4& allocate channel c2 device type sbt connect sys/test@testrac2;5&6& }RMAN& run2& {3& allocate channel c1 device type sbt connect sys/test@testrac1;4& allocate channel c2 device type sbt connect sys/test@testrac2;5& restore archivelog sequence between 134 and 136 thread 2 archivelog sequence between 216 and 220 thread 1;6& }RMAN& host 'rcp racnode1:/data1/archivelog/*.dbf /data1/archivelog';主机命令完成RMAN& run2& {3& allocate channel c1 device type sbt
connect sys/test@testrac1;4& allocate channel c2 device type sbt connect sys/test@testrac2;5&6& }在备份、恢复过程中,发现了一个小问题。备份到磁盘上的备份集要比直接备份到带库上的备份集要小。备份到磁盘的数据文件的备份集每个只有15G左右,加在一起是30G。而如果直接备份到带库上,那么每个备份集都有27G左右,加在一起是54G。可能备份到磁盘可以更方便的压缩备份集的大小。同时备份集的大小也直接影响了备份和恢复时间。如果直接备份到带库上,大约需要45分钟。而将磁盘上的备份集备份到带库上只需要30分钟。当然,直接备份到本地磁盘还需要将近15分钟的时间。可以认为对于备份来说,二者消耗的时间差不多。但是恢复由于只需要一个步骤,因此备份集越小恢复速度就越快。恢复时间分别是30分钟和45分钟。综合考虑备份和恢复,发现先备份到磁盘虽然麻烦一下,但是备份和恢复的速度更快,而且更省空间。RMAN备份恢复――RAC环境数据库的备份(七):http://yangtingkun.itpub.net/post/468/289665这篇介绍RAC本地磁盘备份集通过一个实例进行恢复的过程。对于备份到磁盘上的备份,如果将备份集都拷贝到一个节点上,是可以通过一个节点来完成备份的。$ rman target /恢复管理器: Release 10.2.0.3.0 - Production on 星期一 5月 21 17:22:25 2007Copyright (c) , Oracle. All rights reserved.连接到目标数据库: TESTRAC (DBID=)RMAN& run2& {3& allocate channel c1 device type disk format '/data1/backup/%U' connect sys/test@testrac1;4& allocate channel c2 device type disk format '/data1/backup/%U' connect sys/test@testrac2;5& backup database plus archive6& }为了确保一个节点上可以完成所有的恢复,还应该把当前的所有归档日志备份一下,并拷贝到目标节点上:RMAN& run2& {3& allocate channel c1 device type disk format '/data1/backup/%U' connect sys/test@testrac1;4& allocate channel c2 device type disk format '/data1/backup/%U' connect sys/test@testrac2;5& backup archivelog 6& }$ rcp racnode2:/data1/backup/* /data1/backup/将所有的备份集拷贝到节点1上,下面完全可以通过节点1来独立进行恢复过程。$ srvctl stop db -d testrac$ rman target /恢复管理器: Release 10.2.0.3.0 - Production on 星期四 5月 24 11:18:55 2007Copyright (c) , Oracle. All rights reserved.已连接到目标数据库 (未启动)RMAN& startup mountOracle 实例已启动数据库已装载系统全局区域总计
字节Fixed Size 2031480 字节Variable Size
字节Database Buffers
字节Redo Buffers
字节RMAN& run2& {3& allocate channel c1 device type disk format '
/data1/backup/%U';4& allocate channel c2 device type disk format '/data1/backup/%U';5&6& }RMAN& run2& {3& allocate channel c1 device type disk format '/data1/backup/%U';4& allocate channel c2 device type disk format '/data1/backup/%U';5&6& }对于这种情况,甚至不需要去单独还原归档日志,而可以直接使用RECOVER命令,由Oracle自动来完成所需归档日志的还原工作。RMAN备份恢复――RAC环境数据库的备份(八):http://yangtingkun.itpub.net/post/468/290599这篇介绍基于裸设备RAC备份ASM解决方案。除了第一篇文章,上面所有的文章都是通过两个实例同时进行备份,还原的时候也是通过两个实例同时进行还原,但是恢复的时候,需要一个实例进行恢复。这样就增加了备份和恢复的复杂度。由于日志文件的备份和还原只能通过本地的实例进行,而对于恢复的实例来说,并非所有的归档日志都是可见的。这就要求归档日志在还原完成之后,必须通过手工的方式同步到恢复站点,就不仅增加了恢复的复杂性,而且效率比较低,还要求用户必须清楚的知道需要还原的归档日志有哪些。总之,由于归档无法存放在裸设备上,导致了一个节点无法看到所有的归档日志,从而造成了上述的问题。从这篇开始,尝试几种其他的手段来避免这个问题,降低备份和恢复的复杂性。第一篇文章已经介绍了,如果使用ASM或者CLUSTER文件系统,那么归档日志是可以在多个节点上同时访问的。CLUSTER文件系统只可能在建立数据库的时候进行规划,一旦RAC环境建立完毕,就不可能选择CLUSTER文件系统。然后ASM还是可以选择的。如果将归档日志放到ASM上,那么备份和恢复RAC数据库就像备份和恢复一个单实例数据库一样简单了。不过ASM有ASM的缺点,个人感觉ASM目前的bug还相对多一些,也许11g的时候,ASM会更加成熟。因此,把数据文件放到ASM上还是有风险的,不过将归档放到ASM上就相对安全一些了。不过如果ASM出现了故障,仍然会导致无法完成归档使得数据库停止响应。个人认为,最稳妥的方法仍然是将归档设置在本地的磁盘上,同时两个实例设置第二归档目的地:ASM。利用RMAN的归档定位自动FAILOVER功能,来实现归档的备份和恢复。下面看一下数据库的设置,以及相应的备份恢复方式:$ sqlplus &/ as sysdba&SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 5月 28 13:58:16 2007Copyright (c) , Oracle. All Rights Reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, OLAP and Data Mining optionsSQL& show parameter log_archive_dest_1NAME TYPE VALUE-------------
----------------------- ----------- ------------------------------log_archive_dest_1 string LOCATION=/data1/archiveloglog_archive_dest_10 stringSQL& show parameter log_archive_dest_2NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_dest_2 stringSQL& alter system set log_archive_dest_2 = 'LOCATION=+DISK/testrac/';系统已更改。SQL& exit从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, OLAP and Data Mining options 断开$ rman target /恢复管理器: Release 10.2.0.3.0 - Production on 星期一 5月 28 13:59:30 2007Copyright (c) , Oracle. All rights reserved.连接到目标数据库: TESTRAC (DBID=)RMAN& run 2& {3& allocate channel c1 device type sbt connect sys/test@testrac1;4& allocate channel c2 device type sbt connect sys/test@testrac2;5& backup archivelog 6& }设置了第二归档目录后,备份当前所有的归档日志,确保下次备份的时候,归档日志会同时备份到第二归档目录。下面在任意一个节点就可以对数据库进行备份:$ rman target /恢复管理器: Release 10.2.0.3.0 - Production on 星期一 5月 28 14:10:22 2007Copyright (c) , Oracle. All rights reserved.连接到目标数据库: TESTRAC (DBID=)RMAN& run2& {3& allocate channel c14& allocate channel c25& backup database plus archive6& }下面测试一下恢复过程,首先仍然是先备份归档文件:$ rman target /恢复管理器: Release 10.2.0.3.0 - Production on 星期一 5月 28 16:36:25 2007Copyright (c) , Oracle. All rights reserved.连接到目标数据库: TESTRAC (DBID=)RMAN& run 2& {3& allocate channel c14& allocate channel c25& backup archivelog 6& }下面关闭数据库,启动一个实例到MOUNT状态,开始还原数据库:$ srvctl stop db -d testrac$ rman target /恢复管理器: Release 10.2.0.3.0 - Production on 星期一 5月 28 17:04:11 2007Copyright (c) , Oracle. All rights reserved.已连接到目标数据库 (未启动)RMAN& startup mountOracle 实例已启动数据库已装载系统全局区域总计
字节Fixed Size 2031480 字节Variable Size
字节Database Buffers
字节Redo Buffers
字节RMAN& run2& {3& allocate channel c14& allocate channel c25&6& }由于设置了ASM,可以不必还原归档,而直接进行恢复:RMAN& run2& {3& allocate channel c14& allocate channel c25&6& }但是这种备份方式存在问题,BACKUP DATABASE PLUS ARCHIVELOG DELETE ALL INPU
包含各类专业文献、专业论文、外语学习资料、生活休闲娱乐、中学教育、幼儿教育、小学教育、行业资料、各类资格考试、53RAC环境数据库的备份等内容。 
 数据库常用备份命令_计算机软件及应用_IT/计算机_专业资料。数据库备份命令汇总备份MySQL 数据库的命令 mysqldump -hhostname -uusername -ppassword databasename &...  数据库备份与还原_计算机软件及应用_IT/计算机_专业资料。数据库--完整备份 Backup Database db_database To disk='D:\Backup\db_database_Full.bak' --差异备份...  RAC环境数据库的备份RAC环境数据库的备份隐藏&& RMAN 备份恢复――RAC 环境数据库的备份(一) RAC 环境的备份、恢复和普通数据库的备份、恢复是有一些区别的。 这...  RMAN备份恢复――RAC环境数据库的备份_计算机软件及应用_IT/计算机_专业资料。RAC 环境的备份、恢复和普通数据库的备份、恢复是有一些区别的 这个区别主要体现在 RAC...  RAC环境数据库的备份RAC环境数据库的备份隐藏&& RMAN 备份恢复――RAC 环境数据库的备份(二)这篇介绍基于裸设备的 RAC 环境下的备份。 对于建立在裸设备上的 RA...  RMAN 备份恢复――RAC 环境数据库的备份一、RAC 环境的备份、恢复和普通数据库的备份、恢复的区别 RAC 环境的备份、恢复和普通数据库的备份、恢复是有一些区别的...  数据库备份的重要性_计算机软件及应用_IT/计算机_专业资料。sql数据库备份步骤 随着计算机网络的飞速发展 ,信息安全的重要性日趋明显 ,但是 , 作为信息安全的一个...  RMAN 备份恢复――RAC 环境数据库的备份(四) RAC 环境备份到带库如果是基于 CLUSTER 文件系统或者 ASM,那么和备份到本地硬盘 的区别不大,只需要在安装了带库驱...  RMAN备份恢复――RAC环境数据库的备份(六)_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 RMAN备份恢复――RAC环境数据库的备份(六)_IT/计算机_专业...}

我要回帖

更多关于 rac srvctl 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信