数据库相关的srvctl命令

1.添加数据库

  1. srvctl add database -db racdb -oraclehome /opt/app/oracle/product/18.0.0.0/db_home1
  2. 完整语法示例
  3. srvctl add database -db racdb -oraclehome /opt/app/oracle/product/18.0.0.0/db_home1
  4. -domain example.com -spfile +data/crm/spfilecrm.ora
  5. -role physical_standby -startoption mount -dbtype rac -dbhome racdb_dg
  6. -policy manual -serverpool "svrpoo1,svrpool2" -diskgroup "dggrp1,dggrp2"

2.查看数据库的配置

  1. srvctl config database -d racdb

3.启用或禁用数据库

  1. srvctl disable database -db racdb
  2. srvctl enable database -db racdb

4.修改数据库为逻辑备用

  1. srvctl modify database -db racdb -role logical_standby

5.修改数据库磁盘组

  1. srvctl modify database -db racdb -diskgroup "data,oltp"

6.删除数据库

  1. srvctl remove database -db racdb

7.将数据库racdb的策略管理方式从自动改为手动

Policy-Managed方式介绍
基于策略的管理方式,是以服务器池(Server Pools)为基础的,简单地说,就是先定义一些服务器池,池中包含一定量的服务器,然后再定义一些策略,根据这些策略Oracle会自动决定让多少数据 库实例运行在池中的几台机器上。数据库实例名后缀、数据库实例个数、所运行的主机,这些都是通过策略决定的,而不是数据库管理员事先定好的。
何种环境适合使用这种新的方式进行管理?
当管理大量的服务器集群,并且在这些集群中运行着多种不同重要程度,不同策略的RAC数据库时,为了简化管理,建议使用Policy- Managed方式,实际上Oracle也建议只有在超过3台的服务器的时候才使用Policy-Managed来管理整个数据库集群。想象一下使用 Policy-Managed方式可以达到的效果:如果我们有10台服务器组成,根据不同的应用的重要性定义服务器池的关键程度,然后在其中某些机器意外 停机的情况下,仍然可以自动地保持足够多的机器给重要的系统提供数据库服务,而将不关键的系统数据库服务器个数降低到最低限度。

  1. srvctl modify database -db racdb -policy manual

8.将数据库racdb的启动选项从open改为mount

  1. srvctl modify database -db racdb -s mount

9.查看数据库状态

  1. srvctl status database -db racdb

10.检查实例状态

  1. srvctl status instance -db olracdb -instance "olracdb1,olracdb2" -verbose
  2. select * from v$active_instances;

11.显示数据库racdb中运行服务的状态

  1. srvctl status service -db racdb

12.将数据库racdb 数据库的pdb_service服务从实例racdb1重新定位到racdb2

  1. srvctl relocate service -db racdb -service racdb -oldinst racdb1 -newinst racdb2

13.查询并kill实例集群中的会话

  1. SQL> select sid,serial#,inst_id from gv$session where username=upper('fixf');
  2. SID SERIAL# INST_ID
  3. ---------- ---------- ----------
  4. 256 14347 2
  5. 1234 17912 2
  6. 1099 55662 1

注意:
inst_id前面需要加@字符前缀。
如果会话在当前实例节点则可以忽略inst_id

  1. alter system kill session '256,14347,@2'; #等待所有命令执行完毕结束会话
  2. alter system kill session '256,14347,@2' immediate; #立即结束会话

14. 禁用数据库随着HAS的启动而启动

属性AUTO_START表示Oracle HAS在重启后是否自动启动资源。有效的AUTO_START值为:

  • always:在服务器重新启动时重新启动资源,而不管服务器停止时资源的状态如何。
  • restore:将资源恢复到服务器停止时的状态。如果在服务器停止之前TARGET的值为ONLINE,那么Oracle Clusterware会尝试重新启动资源。
  • never:无论服务器何时停止,Oracle Clusterware都不会重新启动资源。 ``` crsctl stat res ora.orcl.db -p| grep AUTO_START AUTO_START=restore

crsctl modify resource ora.orcl.db -attr AUTO_START=never -unsupported ```