数据库相关的srvctl命令
1.添加数据库
srvctl add database -db racdb -oraclehome /opt/app/oracle/product/18.0.0.0/db_home1
完整语法示例
srvctl add database -db racdb -oraclehome /opt/app/oracle/product/18.0.0.0/db_home1
-domain example.com -spfile +data/crm/spfilecrm.ora
-role physical_standby -startoption mount -dbtype rac -dbhome racdb_dg
-policy manual -serverpool "svrpoo1,svrpool2" -diskgroup "dggrp1,dggrp2"
2.查看数据库的配置
srvctl config database -d racdb
3.启用或禁用数据库
srvctl disable database -db racdb
srvctl enable database -db racdb
4.修改数据库为逻辑备用
srvctl modify database -db racdb -role logical_standby
5.修改数据库磁盘组
srvctl modify database -db racdb -diskgroup "data,oltp"
6.删除数据库
srvctl remove database -db racdb
7.将数据库racdb的策略管理方式从自动改为手动
Policy-Managed方式介绍
基于策略的管理方式,是以服务器池(Server Pools)为基础的,简单地说,就是先定义一些服务器池,池中包含一定量的服务器,然后再定义一些策略,根据这些策略Oracle会自动决定让多少数据 库实例运行在池中的几台机器上。数据库实例名后缀、数据库实例个数、所运行的主机,这些都是通过策略决定的,而不是数据库管理员事先定好的。
何种环境适合使用这种新的方式进行管理?
当管理大量的服务器集群,并且在这些集群中运行着多种不同重要程度,不同策略的RAC数据库时,为了简化管理,建议使用Policy- Managed方式,实际上Oracle也建议只有在超过3台的服务器的时候才使用Policy-Managed来管理整个数据库集群。想象一下使用 Policy-Managed方式可以达到的效果:如果我们有10台服务器组成,根据不同的应用的重要性定义服务器池的关键程度,然后在其中某些机器意外 停机的情况下,仍然可以自动地保持足够多的机器给重要的系统提供数据库服务,而将不关键的系统数据库服务器个数降低到最低限度。
srvctl modify database -db racdb -policy manual
8.将数据库racdb的启动选项从open改为mount
srvctl modify database -db racdb -s mount
9.查看数据库状态
srvctl status database -db racdb
10.检查实例状态
srvctl status instance -db olracdb -instance "olracdb1,olracdb2" -verbose
select * from v$active_instances;
11.显示数据库racdb中运行服务的状态
srvctl status service -db racdb
12.将数据库racdb 数据库的pdb_service服务从实例racdb1重新定位到racdb2
srvctl relocate service -db racdb -service racdb -oldinst racdb1 -newinst racdb2
13.查询并kill实例集群中的会话
SQL> select sid,serial#,inst_id from gv$session where username=upper('fixf');
SID SERIAL# INST_ID
---------- ---------- ----------
256 14347 2
1234 17912 2
1099 55662 1
注意:
inst_id前面需要加@字符前缀。
如果会话在当前实例节点则可以忽略inst_id
alter system kill session '256,14347,@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 ```