【問題與背景】一、刪除一個表?一個庫? drop table table_name; drop table database_name; 二、刪除一個使用者下所有的資料? 最好先停掉庫,shutdown immediate; && startup 這樣能保證沒有使用者串連 或者 SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME=///'USERNAME///'; 查詢到串連 SID SERIAL# ---------- ---------- 24 25341 結束此使用者的所有會話 SQL>ALTER SYSTEM KILL SESSION ///'24,25341///'; System altered. 再刪除:DROP USER USERNAME CASCADE; 三、建立使用者並授權 (本例給串連,修改,管理員) create user username identified by passwd; grant connect,resource,dba to username; commit; 四、如何設定字元集? 查看用戶端字元集環境: select * from nls_instance_parameters;其來源於v$parameter 設定過程 SVRMGR> SHUTDOWN IMMEDIATE; SVRMGR> STARTUP MOUNT; SVRMGR> ALTER SYSTEM ENABLE RESTRICTED SESSION; SVRMGR> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SVRMGR> ALTER SYSTEM SET AQ_TM_PROCESSES=0; SVRMGR> ALTER DATABASE OPEN; SVRMGR> ALTER DATABASE CHARACTER SET zhs16gbk; SVRMGR> SHUTDOWN IMMEDIATE; SVRMGR> STARTUP; 如果報以下的錯: SQL> alter database character set zhs16gbk; alter database character set zhs16gbk * ERROR at line 1: ORA-12712: new character set must be a superset of old character set 處理方法: SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk; # 使用INTERNAL_USE可以跳過超集的檢查,ALTER DATABASE character set INTERNAL_USE 五、查詢執行個體?所有庫名?表名? select * from v$database; show parameter db; // 查看當前的所有資料庫: show parameter optimizer; //顯示設定資訊 select table_name from user_tables; //目前使用者的表 select table_name from all_tables; //所有使用者的表 select table_name from dba_tables; //包括系統資料表 看欄位名與資料類型: desc talbename; 查看主鍵: select * from user_constraints where constraint_type=///'P///' and TABLE_name=upper(///'TRD_USER///') 查看錶空間的sql語句 col tablespace_name format a10; select f.tablespace_name,a.total,u.used,f.free,round((u.used/a.total)*100) ///"% used///", round((f.free/a.total)*100) ///"% Free///" from (select tablespace_name, sum(bytes/(1024*1024)) total from dba_data_files group by tablespace_name) a, (select tablespace_name, round(sum(bytes/(1024*1024))) used from dba_extents group by tablespace_name) u, (select tablespace_name, round(sum(bytes/(1024*1024))) free from dba_free_space group by tablespace_name) f WHERE a.tablespace_name = f.tablespace_name and a.tablespace_name = u.tablespace_name; 六、增加資料表空間 為資料表空間增加資料檔案: alter tablespace users add datafile ///'/u01/oracle/oradata/trds/system01.dbf///' size 1000M; 增加資料表空間原有資料檔案尺寸: alter database datafile ///'/u01/oracle/oradata/trds/system01.dbf///' resize 1000M; 七、資料庫暫存資料表空間的資料檔案的丟失 當資料庫的暫存資料表空間的資料檔案丟失也會引起ORA-01157的錯誤。因為資料庫對暫存資料表空間的資料檔案不會發生檢查點,所以這個時候資料庫照樣能夠開啟。這種情況下的解決方案是邏輯上刪除暫存資料表空間的資料檔案,並且重新增加一個新的暫存資料表空間的資料檔案。 例如: SELECT * FROM DBA_OBJECTS ORDER BY OBJECT_NAME; select * from dba_objects order by object_name; * ERROR at line 1: ORA-01157: cannot identify/lock data file 5 - see DBWR trace file ORA-01110: data file 5: ///'/Oracle/oradata/temp01.dbf///' ALTER DATABASE TEMPFILE ///'/oracle/oradata/temp01.dbf///' DROP; SELECT TABLESPACE_NAME,FILE_NAME FROM DBA_TEMP_FILES; ALTER TABLESPACE TEMP ADD TEMPFILE ‘/Oracle/oradata/temp01.dbf‘ SIZE 100M; 八、查看ORACLE 使用者串連數 select count(*) from v$session #串連數 Select count(*) from v$session where status=///'ACTIVE///' #並發串連數 查看oracle 資料庫狀態 select status from v$instance; select open_mode from v$database; 九、PLS-213: package STANDARD not accessible報錯解決方案 sqlplus /nolog SQL> connect / as sysdba SQL> $ORACLE_HOME/rdbms/admin/catalog.sql SQL> $ORACLE_HOME/rdbms/admin/catproc.sql SQL> $ORACLE_HOME/rdbms/admin/catexp.sql 十、運行lsnrctl start 出現 TNSLSNR for Linux: Version 8.1.7.0.0 - Production System parameter file is /oracle/product/8.1.7/network/admin/listener.ora Log messages written to /oracle/product/8.1.7/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=LinServer)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=LinServer)(PORT=2481))(PROTOCOL_STACK=(PRESENTATION=GIOP)(SESSION=RAW))) TNS-01201: Listener cannot find executable /oracle/product/8.1.7/bin/extproc for SID PLSExtProc 把binl裡的extprocO 做一個叫extproc的link 十一、oemapp相關命令,如下: oemapp dbastudio oemapp console oemapp txtm 十二、如何建立一個執行個體? CREATE DATABASE trds CONTROLFILE REUSE LOGFILE ///'/data/oracle/trds/redo01.log///' SIZE 1M REUSE, ///'/data/oracle/trds/redo02.log///' SIZE 1M REUSE, ///'/data/oracle/trds/redo03.log///' SIZE 1M REUSE, ///'/data/oracle/trds/redo04.log///' SIZE 1M REUSE DATAFILE ///'/data/oracle/trds/system01.dbf///' SIZE 10M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 200M CHARACTER SET WE8ISO8859P1; CREATE ROLLBACK SEGMENT rb_temp STORAGE (INITIAL 100 k NEXT 250 k); ALTER ROLLBACK SEGMENT rb_temp ONLINE; CREATE TABLESPACE rbs DATAFILE ///'/data/oracle/trds/rbs01.dbf///' SIZE 5M REUSE AUTOEXTEND ON NEXT 5M MAXSIZE 150M; CREATE TABLESPACE users DATAFILE ///'/data/oracle/trds/users01.dbf///' SIZE 3M REUSE AUTOEXTEND ON NEXT 5M MAXSIZE 150M; CREATE TABLESPACE temp DATAFILE ///'/data/oracle/trds/temp01.dbf///' SIZE 2M REUSE AUTOEXTEND ON NEXT 5M MAXSIZE 150M; CREATE ROLLBACK SEGMENT rb1 STORAGE(INITIAL 50K NEXT 250K) tablespace rbs; CREATE ROLLBACK SEGMENT rb2 STORAGE(INITIAL 50K NEXT 250K) tablespace rbs; CREATE ROLLBACK SEGMENT rb3 STORAGE(INITIAL 50K NEXT 250K) tablespace rbs; CREATE ROLLBACK SEGMENT rb4 STORAGE(INITIAL 50K NEXT 250K) tablespace rbs; ALTER ROLLBACK SEGMENT rb1 ONLINE; ALTER ROLLBACK SEGMENT rb2 ONLINE; ALTER ROLLBACK SEGMENT rb3 ONLINE; ALTER ROLLBACK SEGMENT rb4 ONLINE; ALTER ROLLBACK SEGMENT rb_temp OFFLINE; DROP ROLLBACK SEGMENT rb_temp ; |