oracle复赛

一、假设你是一个企业的DBA,维护着一个以Oracle 10g数据库为后台的生产系统。一天,前台操作人员电话告之数据库无法正常操作,你该如何处理?
环境模拟:
SQL> shutdown immediate       --中断 -------正常关闭
ctrl c -------切断


处理步骤:
1、验证故障现象
SQL> conn hr/hr


2、查看数据库状态
SQL> conn /as sysdba
Connected to an idle instance.-------连接到控台实例()
startup --------ora-01081:没有正常关闭状态
3、将数据库启动到OPEN状态
SQL> shutdown abort -------------强制关闭
SQL> startup
SQL> select open_mode from v$database;


4、验证普通用户连接
SQL> conn hr/hr


5、查看告警日志文件,分析故障原因
$ cd /u01/app/oracle/admin/orcl/bdump            ------------监控tail -f alert.LOG pwd 查看文件夹
$ vi alert_orcl.log --------vi查看命令 操作 @转换为插入




查看最大进程和连接数


二、假设你是一个企业的DBA,维护着一个以Oracle 10g数据库为后台的生产系统。一天,在你更改数据库参数后,重启数据库时报如下错误:
ORA-00205: error in identifying control file, check alert log for more info,你该如何处理故障?
环境模拟:
SQL> alter system set control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl','/u01/app/oracle/oradata/orcl/control03.ctl ','/u01/app/oracle/oradata/orcl/control04.ctl' scope=spfile;
SQL> shutdown immediate
SQL> startup


处理步骤:
1、检查数据库状态
SQL> conn /as sysdba
SQL> select open_mode from v$database;


2、用备份参数文件启动数据库
shutdown immediate
SQL> startup pfile='/u01/app/oracle/admin/orcl/pfile/init.ora.11112010211324';---------查看pfile文件名 ls
启动阶段
shutdown-nomount-mount-open
3、重建SPFILE文件
SQL> create spfile from pfile='/u01/app/oracle/admin/orcl/pfile/init.ora.11112010211324';


4、用SPFILE文件启动数据库
SQL> shutdown immediate
SQL> startup


5、查看告警日志文件,分析故障原因
$ cd /u01/app/oracle/admin/orcl/bdump
$ vi alert_orcl.log


三、假设 DBA,维护着一个以Oracle 10g数据库为后台的生产系统。当前企业生产系统需要增加一个新模块,要求创建一个新的表空间tbs,并对此表空间完成一些维护操作,请按要求完成操作。


步骤要求:
1、创建表空间tbs,数据文件在/u01/app/oracle/oradata/orcl/目录下,要求大小为10M,自动扩展,每次扩展1M,最大500M
SQL> create tablespace tbs datafile '/u01/app/oracle/oradata/orcl/tbs01.dbf' size 10m;


2、手要将表空间tbs扩展到20M
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/tbs01.dbf' resize 20m;


3、在表空间tbs中添加一个新数据文件tbs02.dbf,放在/u01/app/oracle/oradata/目录下
SQL> alter tablespace tbs add datafile '/u01/app/oracle/oradata/tbs02.dbf' size 10m;


4、将数据文件tbs02.dbf改为自动扩展,每次扩展1M,最大扩展到500M
SQL> alter database datafile '/u01/app/oracle/oradata/tbs02.dbf' autoextend on next 1m maxsize 500m;


5、通过视图查看表空间tbs及其对应的数据文件,以及文件大小、自动扩展属性
SQL> select tablespace_name,file_name,bytes,autoextensible  from dba_data_files;


四、假设你是一个企业的DBA,维护着一个以Oracle 10g数据库为后台的生产系统。随着数据量的增加,公司决定将生产数据移动磁盘阵列上运行。要求你将生产数据主要存储的表空间USERS移动到盘阵上,目录为/u01/app/oracle/oradata/.


操作步骤:
1、将表空间USERS状态改成OFFLINE
SQL> alter tablespace users offline;
2、物理移动数据文件到目标位置
$ cp /u01/app/oracle/oradata/orcl/users01.dbf /u01/app/oracle/oradata/users01.dbf
3、通过rename操作更改数据字典信息
SQL> alter tablespace users rename datafile '/u01/app/oracle/oradata/orcl/users01.dbf' to '/u01/app/oracle/oradata/users01.dbf';
4、将表空间USERS状态改成ONLINE
SQL> alter tablespace users online;
5、查看表空间变更后的结果
SQL> select tablespace_name,file_name,status from dba_data_files;


dba_tablesapces,v$tablespace
五、假设你是一个企业的DBA,刚刚接管了一个Oracle 10g数据库。在对该数据库做全面检查过程中,你发现数据库的三个控制文件都在默认路径下,为了保证控制文件的安全,你计划将三个控制文件放在三个不同路径下。你该如何操作?


操作步骤:
1、创建或分配两个新的路径,存放控制文件
$ mkdir /u01/oradata1
$ mkdir /u01/oradata2


2、查看当前使用的参数文件
SQL> show parameter spfile


3、创建文件参数文件备份
SQL> create pfile from spfile;


4、修改参数control_files
SQL> alter system set control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/oradata1/control02.ctl','/u01/oradata2/control03.ctl' scope=spfile;
SQL> shutdown immediate


5、物理移动控制文件
$ mv control02.ctl /u01/oradata1/control02.ctl
$ mv control03.ctl /u01/oradata2/control03.ctl
SQL> startup
SQL> select name from v$controlfile;


六、假设你是一个企业的DBA,维护着一个以Oracle 10g数据库为后台的生产系统。为了日志文件的安全,你在每个日志文件组中增加了一个复本。某一天,你发现新增的日志文件组3的一个成员发生了损坏,你该如何恢复这个成员?要求,先对日志文件组3创建副本,再模拟redo03.log文件发生损坏


操作步骤:
1、对组3进行多路复用
SQL> alter database add logfile member '/u01/oradata1/redo03b.log' to group 3;


(删除redo03.log文件$ rm -rf redo03.log)


2、切换日志,检查损坏的日志文件
SQL> alter system switch logfile;
$ rm -rf redo03.log


3、删除已经损坏的日志文件成员
SQL> alter database drop logfile member '/u01/app/oracle/oradata/orcl/redo03.log';


4、重新创建损坏的日志文件成员
SQL> alter database add logfile member '/u01/app/oracle/oradata/orcl/redo03.log' to group 3;


5、查看日志文件状态
SQL> select * from v$logfile;


七、假设你是一个企业的DBA,维护着一个以Oracle 10g数据库为后台的生产系统。为了完成新功能的测试,要求你创建一个新的用户TEST,并将HR用户的生产数据导入到TEST用户中。
操作步骤:
1、创建TEST用户
SQL> create user test identified by test;


2、给TEST用户授权
SQL> grant connect,resource to test;


3、导出HR用户的所有对象
$ exp hr/hr file=/home/oracle/hr0629.dmp


4、导入到TEST用户
]$ imp system/oracle file=/home/oracle/hr0629.dmp fromuser=hr touser=test ignore=y


5、查看TEST用户中导入的对象
SQL> col object_name format a20
SQL> select object_name,object_type from user_objects;


八、假设你是一个企业的DBA,刚刚接管了一个Oracle 10g数据库。你发现数据库是在非归档模式,你需要切换到归档模式,并计划将归档日志放在目录/u01/app/oracle/archive下。


操作步骤:
1、创建归档目录,并修改相关参数
$ mkdir /u01/app/oracle/archive
SQL> alter system set log_archive_dest_1='location=/u01/app/oracle/archive';
SQL> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;


2、启动数据库到MOUNT状态
SQL> shutdown immediate
SQL> startup mount


3、将数据库切换到归档模式
SQL> alter database archivelog;


4、查看归档状态
SQL> archive log list;


5、打开数据库,手动产生一个归档日志
SQL> alter database open;
SQL> alter system switch logfile;






--PostgreSQL
--登录数据库
D:\HighGo DB\1.0\bin>psql -h 127.0.0.1 -d highgo -U highgo


--创建角色并授权
highgo=# create role hr login password 'hr' createdb;


--创建表空间
highgo=# create tablespace users owner hr location 'G:/HighgGo_DB/data/users';


--创建数据库
highgo=# \c highgo hr
highgo=# create database orcl owner=hr tablespace=users;


--创建用户默认的模式对象
highgo=> \c orcl hr
orcl=> create schema authorization hr;


--创建表
highgo=# create table table1 (id integer,stu_name character varying(20),rx_date date);


inset table1 values(1,'ksdj','2011-08-31');
alter table table1 add constraint t_f foreign key (t_id) references table2(id);
发布了40 篇原创文章 · 获赞 39 · 访问量 13万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章