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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章