目录
一、数据库的开启和关闭
1.1 开启三阶段
1:startup nomount (alter database mount; alter database open;)
2:startup mount (alter database open;)
3:startup
1.2 关闭状态
1:shutdown normal
不允许连接数据库,等待所有用户退出数据库后才关闭,关闭时间比较慢
2:shutdown immediate
不等待所有用户退出,强行回滚当前活动事务是常用方式
3:shutdown transactional
当前链接到系统的活动的事务执行完毕,常用来计划关闭数据库
4:shutdown abort
需要立即关闭,所有没提交的事务将不回滚,没有任何办法的情况下不得不采用的方式
1.3 关闭三部曲
1.关闭数据库
2.卸载数据库
3.关闭例程
二、启用监听
作用:客户端访问Oracle实例
[oracle@Oracle ~]$ lsnrctl
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 22-10月-2020 23:53:28
Copyright © 1991, 2016, Oracle. All rights reserved.
欢迎来到LSNRCTL, 请键入"help"以获得信息。
LSNRCTL> start
TNS-01106: 使用名称LISTENER的监听程序已经启动
[oracle@Oracle ~]$ lsnrctl stop
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 22-10月-2020 23:55:20
Copyright © 1991, 2016, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
命令执行成功
@E:\orc\app\oracle\product\12.2.0\dbhome_1\sqlplus\admin\help\hlpbld.sql
@E:/orc/app/oracle/product/12.2.0/dbhome_1/sqlplus/admin/help/helpus.sql
三、数据库文件
3.1 分类
1.数据文件
2.控制文件
3.重做日志(组)文件
3.2 控制文件
修改权限:
root账户下:
chown 777 /opt
su - oracle
sqlplus / as sysdba
startup
quit
lsnrctl start
//开启监听
3.2.1 查看控制文件位置
SQL> select name from v c o n t r o l f i l e ; s e l e c t n a m e , v a l u e f r o m v controlfile; select name,value from v controlfile;selectname,valuefromvcontrolfile where name='control_file’
3.2.2 控制文件转移路径
SQL> alter system set control_files=’/orc/app/oracle/oradata/orcl/control01.ctl’,’/opt/control02.ctl’ scope=spfile;
SQL> select name from v$controlfile;
//发现路径没有改变,需要生效下,需要先关闭数据库
第一种方法(在数据库中操作):
SQL> shutdown immediate;
SQL> ho cp /orc/app/oraxcle/oradata/orcl/control02.ctl /opt/control02.ctl
SQL> ho ls /opt/control02.ctl
//发现里面有
SQL> startup
SQL> select name from v$controlfile;
//发现路径改变了
第二种方法(在数据库外操作):
oracle账户下:
cp /orc/app/oraxcle/oradata/orcl/control02.ctl /opt/control02.ctl
ls /opt
//发现有control02.ctl文件
sqlplus / as sysdba
SQL> select name from v$controlfile;
//发现路径改变了
3.2.3 备份控制文件
SQL> alter database backup controlfile to ‘/opt/control.bak’;
SQL> ho ls /opt
//在sql环境下运行系统命令,发现已经备份成功
3.3 重做日志
3.3.1 重做日志查询
SQL> select group#,sequence#,bytes,members,archived,status from v$log;
//看视图,archived:归档
SQL> set line 120;
//设置显示宽度为120
SQL> col member for a50;
//member列显示宽度为50字符宽度
SQL> select group#,status,type,member from v$logfile;
//查看文件路径
status含义:
1.空白:正在使用
2.stale:内容不完整
3.invalid:无法访问,如刚建立
4.deleted:文件已不再使用
重做日志路径(与控制文件一样):
/orc/app/oraxcle/oradata/orcl/
3.3.2 新增重做日志组
SQL> alter database add logfile group 4 (’/orc/app/oraxcle/oradata/orcl/redo04a.log’,’/opt/redo04b.log’) size 10m;
SQL> select group#,status,type,member from vKaTeX parse error: Expected 'EOF', got '#' at position 27: …L> select group#̲,sequence#,byte…log;
组4unused
3.3.3 删除重做日志组
SQL> alter database drop logfile group 4;
当前日志组不可删除
解决办法:切换日志组alter system switch logfile ;
SQL> select group#,sequence#,bytes,members,archived,status from v$log;
3.3.4 添加/删除重做日志文件
SQL> alter database add logfile member ‘/opt/redo01b.log’ to group 1,’/opt/redo02b.log’ to group 2;
SQL> alter system switch logfile ;
SQL> alter database drop logfile member ‘/opt/redo02b.log’;
//删除重做日志文件
3.3.5 检查点
SQL> alter system checkpoint;
3.4 归档日志
SQL> archive log list;
//查看归档日志模式
3.4.1 启用归档模式过程
1.关闭数据库
SQL> shutdown immediate;
2.启动实例,加载数据库但是并不打开数据库
SQL> startup mount;
3.启用归档日志模式
SQL> alter database archivelog;
4.打开数据库
SQL> alter database open;
5.查看归档日志模式
SQL> archive log list;
3.4.2 关闭归档模式过程
1.关闭数据库
SQL> shutdown immediate;
2.启动实例,加载数据库但是并不打开数据库
SQL> startup mount;
3.关闭归档日志模式
SQL> alter database noarchivelog;
4.打开数据库
SQL> alter database open;
5.查看归档日志模式
SQL> archive log list;
SQL> select dest_id,dest_name.status.destination from v$archivelog;