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 ...
随机推荐
- 一个快速检测系统CPU负载的小程序
原理说明 在对服务器进行维护时,有时也遇到由于系统 CPU(利用率)负载过高导致业务中断的情况.服务器上可能运行多个进程,查看单个进程的 CPU 都是正常的,但是整个系统的 CPU 负载可能是异常的. ...
- SQL锁机制和事务隔离级别
摘自:http://www.cnblogs.com/haiyang1985/archive/2009/02/27/1399641.html 锁机制 NOLOCK和READPAST的区别. 1. ...
- java笔试题三(javaWeb)
1.讲一下Servlet的执行过程,doGet和doPost的区别. 执行过程: 比如注解配置版本,先继承httpServlet,一旦发送get请求 调用,再执行post方法. doGet和doPos ...
- Python Web学习笔记之递归和迭代的区别
电影故事例证:迭代——<明日边缘>递归——<盗梦空间> 迭代是更新变量的旧值.递归是在函数内部调用自身. 迭代是将输出做为输入,再次进行处理.比如将摄像头对着显示器:比如镜子对 ...
- P4289 [HAOI2008]移动玩具(bfs)
P4289 [HAOI2008]移动玩具 双向bfs+状态压缩+记忆化搜索 双向bfs用于对bfs的优化,每次找到可扩展节点少的一边进行一次bfs,找到的第一个互相接触的点即为最短路径 矩阵范围仅4* ...
- python Django编写登录项目
Django 目录结构: __init__.py 文件: import pymysql pymysql.install_as_MySQLdb() 注意:如果 import pymysql 的时候报红, ...
- JavaScript 中语法规范及调试
JavaScript 中语法规范及调试 版权声明:未经博主授权,内容严禁分享转载 JavaScript 开发环境 JavaScript 脚本可以使用任意一款纯文本编辑器进行编程开发. 常见的前端开发编 ...
- 20145305 《网络对抗》Web基础
实践过程及结果截图 Apache 简单的网页编写 javascript相关 PHP测试 MySQL基础 php+mysql 登录成功信息: 登录失败信息: SQL注入 XSS攻击 基础问题回答 (1) ...
- tf.equal的使用
tf.equal(A, B)是对比这两个矩阵或者向量的相等的元素,如果是相等的那就返回True,反正返回False,返回的值的矩阵维度和A是一样的 import tensorflow as tf im ...
- luogu P2073 送花 线段树
思路&心路 一眼认定沙比提 写的比较慢,写了1小时吧 开心的交上去 卧槽,只有20? 不服不服,拿着题解的代码去对拍 Emma,<100没问题 100000数据错了,还只是错了一个数据 ...