RAC配置(启停库)
关库顺序 :先关闭数据库 然后关闭节点资源
[root@rac1 ~]# srvctl stop database -d 数据库名
[root@rac1 ~]# srvctl stop instance -d 数据库名 -i 实例1
[root@rac1 ~]# srvctl stop instance -d 数据库名 -i 实例2
[root@rac1 ~]# srvctl stop nodeapps -n 节点1
[root@rac1 ~]# srvctl start nodeapps -n 节点2
启库顺序相反
[root@rac1 ~]# srvctl start nodeapps -n 节点1
[root@rac1 ~]# srvctl start nodeapps -n 节点2
[root@rac1 ~]# srvctl start instance -d 数据库名 -i 实例1
[root@rac1 ~]# srvctl start instance -d 数据库名 -i 实例2
[root@rac1 ~]# srvctl start database -d 数据库名
[root@rac1 ~]# srvctl stop database -d prod root用户关库命令
[root@rac1 ~]# srvctl start database -d prod root用户启库命令
[root@rac1 ~]# srvctl stop instance -d prod -i prod1 关闭实例
[root@rac1 ~]# crsctl stop crs 关闭crs资源
[root@rac1 ~]# crsctl check crs 查看crs资源的状态
[root@rac1 ~]# crs_stat -t
[root@rac1 ~]# srvctl stop nodeapps -n rac1 关闭节点应用 rac1
[root@rac1 ~]# more /etc/inittab
x:5:respawn:/etc/X11/prefdm -nodaemon
h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null
h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null 查看 css fatal 致命的如果启动失败 导致节点重启
h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null
[root@rac1 ~]# tail -f /var/log/messages 操作系统日志
[root@rac1 ~]# cd /u01/crs_1/log/rac1/
[root@rac1 rac1]# ls
admin alertrac1.log client crsd cssd evmd racg crs系统日志
[root@rac1 rac1]# tail -f alertrac1.log
2013-01-30 01:33:32.929
[cssd(7013)]CRS-1605:CSSD voting file is online: /dev/raw/raw8. Details in /u01/crs_1/log/rac1/cssd/ocssd.log.
2013-01-30 01:33:36.410
[cssd(7013)]CRS-1601:CSSD Reconfiguration complete. Active nodes are rac1 rac2 .
2013-01-30 01:33:36.792
[crsd(6058)]CRS-1012:The OCR service started on node rac1.
2013-01-30 01:33:36.828
[evmd(6898)]CRS-1401:EVMD started on node rac1.
2013-01-30 01:33:38.762
[crsd(6058)]CRS-1201:CRSD started on node rac1.
SQL> select instance_number,instance_name from gv$instance;
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
1 prod1
2 prod2
查看两个节点 两个实例
SQL> show parameter name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string prod
db_unique_name string prod
global_names boolean FALSE
instance_name string prod1
lock_name_space string
log_file_name_convert string
service_names string prod
SQL> show parameter name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string prod
db_unique_name string prod
global_names boolean FALSE
instance_name string prod2
lock_name_space string
log_file_name_convert string
service_names string prod
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+DG1/prod/datafile/system.256.805961653
+DG1/prod/datafile/undotbs1.258.805961657
+DG1/prod/datafile/sysaux.257.805961655
+DG1/prod/datafile/users.259.805961657
+DG1/prod/datafile/example.264.805961789
+DG1/prod/datafile/undotbs2.265.805961897
SQL> select name from v$tempfile; 临时文件放于其他磁盘了
NAME
--------------------------------------------------------------------------------
+DG1/prod/tempfile/temp.263.805961781
SQL> select name from v$controlfile; 控制文件自动多元化 人性化吧
NAME
--------------------------------------------------------------------------------
+DG1/prod/controlfile/current.260.805961753
+RECOVERY/prod/controlfile/current.256.805961755
SQL> select * from v$log; 查看 thread 线程号 两个节点 故线程号 2个
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 2 52428800 2 NO INACTIVE 474739 29-JAN-13
2 1 3 52428800 2 NO CURRENT 528602 30-JAN-13
3 2 1 52428800 2 NO CURRENT 478694 29-JAN-13
4 2 0 52428800 2 YES UNUSED0
SQL> alter database add logfile thread 1 group 5 '+dg1' size 50m; 添加日志组 其实后面的group 5 组号 不用写 oracle自行设定
Database altered.
指明文件存放的路径 这就是 OMF 的优势 管理更为方便 文件名 oracle自行管理 我们只需指定路径就好了
SQL> alter database add logfile thread 2 size 50m; 给线程2 添加日志组 默认添加两个成员 磁盘组dg1 磁盘组recovery
Database altered.
SQL> alter database add logfile member '+RECOVERY' to group 5; 指定存储位置 添加日志成员
Database altered.
SQL> show parameter create;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
create_bitmap_area_size integer 8388608
create_stored_outlines string
db_create_file_dest string +DG1 这就是oracle自行设定的路径
db_create_online_log_dest_1 string
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
SQL> create tablespace tbs1; 创建表空间 路径不用指定 OMF的优势
Tablespace created.
SQL> create tablespace tbs2 datafile '+RECOVERY' size 50m; 创建表空间 指定磁盘组 指定 大小 如果不指定 默认100m
Tablespace created.
SQL> select name,bytes/1024/1024 from v$datafile;
NAME BYTES/1024/1024
-------------------------------------------------- ---------------
+DG1/prod/datafile/system.256.808026577 480
+DG1/prod/datafile/undotbs1.258.808026579 35
+DG1/prod/datafile/sysaux.257.808026579 250
+DG1/prod/datafile/users.259.808026581 5
+DG1/prod/datafile/example.264.808026717 100
+DG1/prod/datafile/undotbs2.265.808026831 25
+DG1/prod/datafile/tbs1.270.808033599 100
+RECOVERY/prod/datafile/tbs2.263.808033653 50
tbs1 指定大小 100m
tbs2 不指定大小 50m 对了吧
[oracle@rac1 ~]$ more /u01/app/oracle/product/10.2.0/db_1/dbs/initprod1.ora rac下的pfile里面只有一句话 指定spfile
SPFILE='+DG1/prod/spfileprod.ora'
SQL> create pfile='/home/oracle/initprod.ora' from spfile; 备份spfile 注意指定路径 不然放于asm磁盘组了
File created.
[oracle@rac1 ~]$ more /home/oracle/initprod.ora
prod1.__db_cache_size=176160768
prod2.__db_cache_size=167772160
prod1.__java_pool_size=4194304
prod2.__java_pool_size=4194304
prod1.__large_pool_size=4194304
prod2.__large_pool_size=4194304
prod1.__shared_pool_size=96468992
prod2.__shared_pool_size=104857600
prod1.__streams_pool_size=0
prod2.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/prod/adump'
*.background_dump_dest='/u01/app/oracle/admin/prod/bdump'
*.cluster_database_instances=2
*.cluster_database=true
*.compatible='10.2.0.1.0'
*.control_files='+DG1/prod/controlfile/current.260.805961753','+RECOVERY/prod/co
ntrolfile/current.256.805961755'
*.core_dump_dest='/u01/app/oracle/admin/prod/cdump'
*.db_block_size=8192
*.db_create_file_dest='+DG1'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='prod'
*.db_recovery_file_dest='+RECOVERY'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=prodXDB)'
prod2.instance_number=2
prod1.instance_number=1
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=94371840
*.processes=150
*.remote_listener='LISTENERS_PROD'
*.remote_login_passwordfile='exclusive'
*.sga_target=285212672
prod2.thread=2
prod1.thread=1
*.undo_management='AUTO'
prod1.undo_tablespace='UNDOTBS1'
prod2.undo_tablespace='UNDOTBS2'
*.user_dump_dest='/u01/app/oracle/admin/prod/udump'
配置客户端
服务器端 tnsnames 文件 注意 host 都是对应 vip地址(漂移地址)
PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod)
)
)
PROD2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod)
(INSTANCE_NAME = prod2)
)
)
PROD1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod)
(INSTANCE_NAME = prod1)
)
)
修改客户端 tnsnames
配置归档
[oracle@rac1 ~]# mkdir /u01/arch
[oracle@rac2 ~]# mkdir /u01/arch
[oracle@rac1 ~]# vi /etc/exports
/u01/arch 192.168.8.30/24(sync,rw)
[oracle@rac1 ~]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
[oracle@rac1 ~]# chkcofig nfs on
[oracle@rac2 ~]# mount -t nfs -o rw,bg,hard,soft,nointr,rsize=32768,wsize=32768,timeo=600,actimeo=0 rac1:/u01/arch /u01/arch
[oracle@rac1 ~]# vi /etc/fstab
rac1:/u01/arch /u01/arch rw,bg,hard,soft,nointr,rsize=32768,wsize=32768,timeo=600,actimeo=0 参数
两个节点关库 任一节点启库到mount状态
SQL> alter database archivelog ;
Database altered.
SQL> alter system set log_archive_dest='location=/u01/arch' scope=spfile;
System altered.
SQL> alter system archive log current;
System altered.
asm 磁盘组
SQL> desc v$asm_diskgroup;
Name Null? Type
----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------
GROUP_NUMBER NUMBER
NAME VARCHAR2(30)
SECTOR_SIZE NUMBER
BLOCK_SIZE NUMBER
ALLOCATION_UNIT_SIZE NUMBER
STATE VARCHAR2(11)
TYPE VARCHAR2(6)
TOTAL_MB NUMBER
FREE_MB NUMBER
REQUIRED_MIRROR_FREE_MB NUMBER
USABLE_FILE_MB NUMBER
OFFLINE_DISKS NUMBER
UNBALANCED VARCHAR2(1)
COMPATIBILITY VARCHAR2(60)
DATABASE_COMPATIBILITY VARCHAR2(60)
SQL> select GROUP_NUMBER , NAME ,BLOCK_SIZE, STATE ,TOTAL_MB, FREE_MB ,USABLE_FILE_MB ,OFFLINE_DISKS from v$asm_diskgroup;
GROUP_NUMBER NAME BLOCK_SIZE STATE TOTAL_MB FREE_MB USABLE_FILE_MB OFFLINE_DISKS
------------ ------------------------------ ---------- ----------- ---------- ---------- -------------- -------------
1 DG1 4096 CONNECTED 8192 5226 2613 0
2 RECOVERY 4096 CONNECTED 8192 6840 3420 0
[oracle@rac1 ~]$ export ORACLE_SID=+ASM1
[oracle@rac1 ~]$ sqlplus / as sysdba
SQL> create diskgroup dg2 external redundancy disk '/dev/raw/raw5';
Diskgroup created.
alter diskgroup dg2 mount;
alter diskgroup dg2 dismount;
create diskgroup dg2 normal redundancy disk '/dev/raw/rawXXXXX'; 创建 normal磁盘 报错 至少需要两块
修改asm 的 pfile 把新加的磁盘组 加入开机自动
asm_disgroups='dg1'.'recovery','dg2'
alter database backup controlfile to '+dg2/prod/controlfile/controlfile01.ctl' ;
alter diskgroup add directory '+dg1/prod/controlfile' scope=spfile;
RAC配置(启停库)的更多相关文章
- 【RAC】Oracle 10g RAC相关启停命令,维护命令
Oracle10g RAC关闭及启动步骤 情况1:需要关闭DB(所有实例),OS及Server. a.首先停止Oracle10g环境 $ lsnrctl stop (每个节点上停止监听,也可以用s ...
- oracle 11gR2 RAC 停库和启库
grid设置环境变量后可以在任意目录下执行,如root没设置的话需要带绝对路径export ORACLE_HOME=/u01/app/11.2.0/gridexport PATH=$ORACLE_HO ...
- redis安装、配置、启停
Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and ...
- nginx和php-fpm的启停和配置
一.nginx的启停 (1) 启动nginx /etc/init.d/nginx start (2) 停止nginx /etc/init.d/nginx stop (3) 重启nginx /etc/i ...
- oracle 10g/11g RAC 启停归档模式
oracle 10g rac 启停归档模式 假设Oracle数据库执行在归档模式,当进行数据库维护时,可能须要暂停数据库的归档,在完毕维护后,再又一次启动归档模式. 通过下面步骤能够从归档 ...
- 2、Redis如何配置成一个windows服务并且设置一键安装卸载与启停
每天启动redis虽然只是一个命令行的事情,但是还是比较烦,所以…… 参考文档:Windows Service Documentation.docx 默认前提:Redis已安装并配置完成(不知道如何配 ...
- 11g RAC r2 的启停命令概述1
目标: 熟悉主要进程的启停顺序 了解独占模式 -excl crsctl start crs与crsctl start cluster 区别 1.熟悉主要进程的启停顺序 1.1 启动节点rac1: [r ...
- Codis-dashboard的配置和启停
Codis-dashboard是集群的管理工具 生成配置文件,即将现有的配置文件输出到指定目录位置: ./codis-dashboard --default-config | tee conf/das ...
- ASP.NET CORE Linux发布工具(文件对比 只上传差异文件;自动启停WebServer命令;上传完成自动预热WebServer)
最近这几日在搞一个小网站:教你啊 :(感兴趣的朋友可以来捧场,在这个网站上有任何消费我都可以退还) 由于更新频繁,手动更新特别麻烦,于是开发了这个小工具 用了一段时间,还是挺顺手的,同时.NET Co ...
随机推荐
- vc++引用外部dll时报error LNK2019: 无法解析的外部符号
初学cpp,因为之前装linux下各种软件的时候,知道LD_LIBRARY_PATH可以指定动态库的目录.今天在vc集成log4cpp的时候,编译main时报error LNK2019: 无法解析的外 ...
- JavaScript Image对象 / Tabel对象 / Select对象 / Form对象
JavaScript Image / Tabel / Select / Form 对象 版权声明:未经授权,严禁转载! Image 对象 Image 对象,代表 <img> 元素. < ...
- 20145307陈俊达_安卓逆向分析_APKtools分析smail
20145307陈俊达_安卓逆向分析_APKtools分析smail 引言 真刺激呢!到了第二篇博客了,难度开始加大,之前是简单的dex2jar和有图形界面的jd-gui,现在来隆重介绍强大的反汇编工 ...
- 20145212罗天晨 逆向及Bof基础实践
20145212罗天晨<网络对抗>第1周学习总结--逆向及Bof基础实践 逆向及Bof基础实践 一.实践目标 1.运行原本不可访问的代码片段 2.强行修改程序执行流 3.以及注入运行任意代 ...
- linux内核分析 第六周
一.进程的描述 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. 1.进程控制块PCB--task_struct 进程状态 进程打开的文件 进程优先级信息 2. ...
- 小测(noip2005的两道题) 2017.3.3
过河 题目描述 Description 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把 ...
- SQL语句 查询同一个字符在某一个字符串中出现的次数
select len(replace(字段名A,';','--'))-len(字段名A) from table表名
- AP与CP介绍【转】
本文转载子:https://blog.csdn.net/wqlinf/article/details/8663170 基带芯片加协处理器(CP,通常是多媒体加速器).这类产品以MTK方案为典型代表,M ...
- 硬盘分区表知识—详解硬盘MBR
硬盘是现在计算机上最常用的存储器之一.我们都知道,计算机之所以神奇,是因为它具有高速分析处理数据的能力.而这些数据都以文件的形式存储在硬盘 里.不过,计算机可不像人那么聪明.在读取相应的文件时,你必须 ...
- javascript 构造函数类和原型 prototyp e定义的属性和方法的区别
1.把方法写在原型中比写在构造函数中消耗的内存更小,因为在内存中一个类的原型只有一个,写在原型中的行为可以被所有实例共享,实例化的时候并不会在实例的内存中再复制一份而写在类中的方法,实例化的时候会在每 ...