蜗牛—ORACLE基础之学习(一)
来源:互联网 发布:手机全透明软件 编辑:程序博客网 时间:2024/05/22 05:02
1、备份控制文件
SQL> conn sys/orcl@orcl as sysdba;
已连接。
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string D:\ORACLE\PRODUCT\10.2.0\DB_1\
DBS\SPFILEORCL.ORA
SQL> show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string D:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\CONTROL01.CTL, D:\ORAC
LE\PRODUCT\10.2.0\ORADATA\ORCL
\CONTROL02.CTL, D:\ORACLE\PROD
UCT\10.2.0\ORADATA\ORCL\CONTRO
L03.CTL
SQL> alter system set control_files=
2 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control01.ctl',
3 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control02.ctl',
4 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control03.ctl',
5 'e:\control04.ctl'
6 scope=spfile;
系统已更改。
SQL> alter database backup controlfile to 'e:\control.bkp';//备份成二进制文件
数据库已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host copy e:\control.bkp e:\control04.ctl //用备份的二进制文件替换控制文件
SQL> conn / as sysdba;
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248504 bytes
Variable Size 88081160 bytes
Database Buffers 180355072 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string D:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\CONTROL01.CTL, D:\ORAC
LE\PRODUCT\10.2.0\ORADATA\ORCL
\CONTROL02.CTL, D:\ORACLE\PROD
UCT\10.2.0\ORADATA\ORCL\CONTRO
L03.CTL, E:\CONTROL04.CTL
2、如果某个控制文件丢失或损坏,解决如下:
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del e:\control04.ctl //删除模仿文件丢失
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248504 bytes
Variable Size 92275464 bytes
Database Buffers 176160768 bytes
Redo Buffers 2945024 bytes
ORA-00205: ?????????, ??????, ??????? //启动出现问题
SQL> shutdown immediate
ORA-01507: ??????
ORACLE 例程已经关闭。
SQL> host copy D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control01.ctl e:\control04.ctl //已有控制文件复制一份
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248504 bytes
Variable Size 92275464 bytes
Database Buffers 176160768 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
//第二种解决方法:修改control_files参数,以删除损坏或丢失的控制文件
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del e:\control04.ctl
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248504 bytes
Variable Size 92275464 bytes
Database Buffers 176160768 bytes
Redo Buffers 2945024 bytes
SQL> alter system set control_files=
2 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control01.ctl',
3 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control02.ctl',
4 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control03.ctl'
5 scope=spfile;
系统已更改。
SQL> shutdown immediate
ORA-01507: ??????
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248504 bytes
Variable Size 92275464 bytes
Database Buffers 176160768 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
3、备份到文本文件
SQL> alter database backup controlfile to trace;
数据库已更改。
SQL> show parameter user_dump_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string D:\ORACLE\PRODUCT\10.2.0\ADMIN
\ORCL\UDUMP
//打开D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP\orcl_ora_2368.trc(按照修改时间进行查看)
//重做日志文件管理
1、添加重做日志文件组
SQL> alter database add logfile
2 group 4 ('e:\redo04_1.log', 'e:\redo04_2.log')
3 size 10M;
数据库已更改。
SQL> alter database backup controlfile to trace;
数据库已更改。//可以从跟踪文件中发现添加重做日志文件会修改控制文件
2、添加重做日志文件组的成员
SQL> alter database add logfile member
2 'e:\redo04_3.log'
3 to group 4;
数据库已更改。
SQL> set pagesize 40 linesize 120
SQL> column group# format 99999
SQL> select * from v$log; //可以查看各日志组的状态
3、添加日志组成员
SQL> alter database add logfile member
2 'e:\redo02_2.log'
3 to group 2;
数据库已更改。
SQL> set pagesize 40 linesize 120
SQL> column group# format 99999
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
------ ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 53 52428800 1 NO INACTIVE 2561365 08-10月-09
2 1 54 52428800 2 NO CURRENT 2597752 09-10月-09
3 1 52 52428800 1 NO INACTIVE 2505648 07-10月-09
4 1 0 10485760 4 YES UNUSED 0
//验证不能删除current日志组及成员
SQL> alter database drop logfile group 2;
alter database drop logfile group 2
*
第 1 行出现错误:
ORA-01623: 日志 2 是实例 orcl (线程 1) 的当前日志 - 无法删除
ORA-00312: 联机日志 2 线程 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'
ORA-00312: 联机日志 2 线程 1: 'E:\REDO02_2.LOG'
SQL> alter database drop logfile member
2 'e:\redo02_2.log';
alter database drop logfile member
*
第 1 行出现错误:
ORA-01609: 日志 2 是线程 1 的当前日志 - 无法删除成员
ORA-00312: 联机日志 2 线程 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'
ORA-00312: 联机日志 2 线程 1: 'E:\REDO02_2.LOG'
//手动进行日志切换
SQL> alter system switch logfile;
系统已更改。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
------ ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 53 52428800 1 NO INACTIVE 2561365 08-10月-09
2 1 54 52428800 2 NO ACTIVE 2597752 09-10月-09
3 1 52 52428800 1 NO INACTIVE 2505648 07-10月-09
4 1 55 10485760 4 NO CURRENT 2600388 09-10月-09
SQL> alter database drop logfile member
2 'e:\redo02_2.log';
数据库已更改。//说明可以删除active组的成员
4、清除重做日志文件组
5、移动日志组
SQL> host copy e:\redo04_1.log e:\oracle\redo04_01.log
SQL>
SQL> alter database rename file
2 'e:\redo04_1.log'
3 to
4 'e:\oracle\redo04_1.log';
数据库已更改。
SQL> select group#,member from v$logfile; //查看修改后的group4中的成员
SQL> conn sys/orcl@orcl as sysdba;
已连接。
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string D:\ORACLE\PRODUCT\10.2.0\DB_1\
DBS\SPFILEORCL.ORA
SQL> show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string D:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\CONTROL01.CTL, D:\ORAC
LE\PRODUCT\10.2.0\ORADATA\ORCL
\CONTROL02.CTL, D:\ORACLE\PROD
UCT\10.2.0\ORADATA\ORCL\CONTRO
L03.CTL
SQL> alter system set control_files=
2 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control01.ctl',
3 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control02.ctl',
4 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control03.ctl',
5 'e:\control04.ctl'
6 scope=spfile;
系统已更改。
SQL> alter database backup controlfile to 'e:\control.bkp';//备份成二进制文件
数据库已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host copy e:\control.bkp e:\control04.ctl //用备份的二进制文件替换控制文件
SQL> conn / as sysdba;
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248504 bytes
Variable Size 88081160 bytes
Database Buffers 180355072 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string D:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\CONTROL01.CTL, D:\ORAC
LE\PRODUCT\10.2.0\ORADATA\ORCL
\CONTROL02.CTL, D:\ORACLE\PROD
UCT\10.2.0\ORADATA\ORCL\CONTRO
L03.CTL, E:\CONTROL04.CTL
2、如果某个控制文件丢失或损坏,解决如下:
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del e:\control04.ctl //删除模仿文件丢失
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248504 bytes
Variable Size 92275464 bytes
Database Buffers 176160768 bytes
Redo Buffers 2945024 bytes
ORA-00205: ?????????, ??????, ??????? //启动出现问题
SQL> shutdown immediate
ORA-01507: ??????
ORACLE 例程已经关闭。
SQL> host copy D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control01.ctl e:\control04.ctl //已有控制文件复制一份
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248504 bytes
Variable Size 92275464 bytes
Database Buffers 176160768 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
//第二种解决方法:修改control_files参数,以删除损坏或丢失的控制文件
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del e:\control04.ctl
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248504 bytes
Variable Size 92275464 bytes
Database Buffers 176160768 bytes
Redo Buffers 2945024 bytes
SQL> alter system set control_files=
2 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control01.ctl',
3 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control02.ctl',
4 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Control03.ctl'
5 scope=spfile;
系统已更改。
SQL> shutdown immediate
ORA-01507: ??????
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248504 bytes
Variable Size 92275464 bytes
Database Buffers 176160768 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
3、备份到文本文件
SQL> alter database backup controlfile to trace;
数据库已更改。
SQL> show parameter user_dump_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string D:\ORACLE\PRODUCT\10.2.0\ADMIN
\ORCL\UDUMP
//打开D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP\orcl_ora_2368.trc(按照修改时间进行查看)
//重做日志文件管理
1、添加重做日志文件组
SQL> alter database add logfile
2 group 4 ('e:\redo04_1.log', 'e:\redo04_2.log')
3 size 10M;
数据库已更改。
SQL> alter database backup controlfile to trace;
数据库已更改。//可以从跟踪文件中发现添加重做日志文件会修改控制文件
2、添加重做日志文件组的成员
SQL> alter database add logfile member
2 'e:\redo04_3.log'
3 to group 4;
数据库已更改。
SQL> set pagesize 40 linesize 120
SQL> column group# format 99999
SQL> select * from v$log; //可以查看各日志组的状态
3、添加日志组成员
SQL> alter database add logfile member
2 'e:\redo02_2.log'
3 to group 2;
数据库已更改。
SQL> set pagesize 40 linesize 120
SQL> column group# format 99999
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
------ ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 53 52428800 1 NO INACTIVE 2561365 08-10月-09
2 1 54 52428800 2 NO CURRENT 2597752 09-10月-09
3 1 52 52428800 1 NO INACTIVE 2505648 07-10月-09
4 1 0 10485760 4 YES UNUSED 0
//验证不能删除current日志组及成员
SQL> alter database drop logfile group 2;
alter database drop logfile group 2
*
第 1 行出现错误:
ORA-01623: 日志 2 是实例 orcl (线程 1) 的当前日志 - 无法删除
ORA-00312: 联机日志 2 线程 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'
ORA-00312: 联机日志 2 线程 1: 'E:\REDO02_2.LOG'
SQL> alter database drop logfile member
2 'e:\redo02_2.log';
alter database drop logfile member
*
第 1 行出现错误:
ORA-01609: 日志 2 是线程 1 的当前日志 - 无法删除成员
ORA-00312: 联机日志 2 线程 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'
ORA-00312: 联机日志 2 线程 1: 'E:\REDO02_2.LOG'
//手动进行日志切换
SQL> alter system switch logfile;
系统已更改。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
------ ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 53 52428800 1 NO INACTIVE 2561365 08-10月-09
2 1 54 52428800 2 NO ACTIVE 2597752 09-10月-09
3 1 52 52428800 1 NO INACTIVE 2505648 07-10月-09
4 1 55 10485760 4 NO CURRENT 2600388 09-10月-09
SQL> alter database drop logfile member
2 'e:\redo02_2.log';
数据库已更改。//说明可以删除active组的成员
4、清除重做日志文件组
5、移动日志组
SQL> host copy e:\redo04_1.log e:\oracle\redo04_01.log
SQL>
SQL> alter database rename file
2 'e:\redo04_1.log'
3 to
4 'e:\oracle\redo04_1.log';
数据库已更改。
SQL> select group#,member from v$logfile; //查看修改后的group4中的成员
0 0
- 蜗牛—ORACLE基础之学习(一)
- 蜗牛—ORACLE基础之学习(二)
- 蜗牛—Java基础之学习(一)
- 蜗牛—ORACLE基础之触发器学习(三)
- 蜗牛—Java基础之学习(二)
- 蜗牛—Java基础之学习(三)
- 蜗牛—Java基础之学习(四)
- 蜗牛—Java基础之学习(五)
- 蜗牛—Java基础之学习(七)
- 蜗牛—Android基础之ProgressBar
- 蜗牛—Android基础之RatingBar
- 蜗牛—Android基础之拨打电话
- 蜗牛—Android基础之按钮监听器
- 蜗牛—Java学习之学习(六)
- 蜗牛—cocos2dx学习之网址
- 蜗牛—cocos2dx学习之项目创建
- 蜗牛—JavaScript学习之scroll
- 蜗牛—JQuery学习之属性菜单
- 第十七集 常用sql技巧
- java 线程(三) 互斥和同步
- 为什么王兴雷军他们能二次创业成功
- js不支持重载的解决方案
- 哈希表
- 蜗牛—ORACLE基础之学习(一)
- CF Round #240 (Div. 2) C
- LRU Cache 实现
- android的自定义camera竖屏时,摄像头自动旋转90度的解决方案
- iOS多线程编程之NSThread的使用
- 黑马程序员-适配器模式
- SVN使用
- 2014微软编程一小时 题目1 : Arithmetic Expression Java实现
- PAT 1003