1. 程式人生 > >oracle常用操作說明

oracle常用操作說明

Oracle 登入 su - oracle $ sqlplus / as sysdba 資料庫建立完成之後,記得,登入資料庫執行下面操作(解決一些空白不能匯出問題) alter system set deferred_segment_creation=false; 設定deferred_segment_creation 引數: 設定deferred_segment_creation 引數為FALSE來禁用"段推遲建立"(也就是直接建立segment),無論是空表還是非空表,都分配segment。 檢視狀態: show parameter deferred_segment_creation; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ deferred_segment_creation boolean TURE 如果VALUE的值為TURE,可以做以下修改: alter system set deferred_segment_creation=false; 啟動多個 Oracle例項 切換到

oracle 使用者,使用如下的命令: su - oracle 啟動監聽: $ lsnrctl start --假設一個例項是orcl、另外一個是test 啟動orcl例項: $ export ORACLE_SID=orcl $ sqlplus / as sysdba SQL> startup SQL> quit 啟動test例項: $ export ORACLE_SID=test $ sqlplus / as sysdba SQL> startup SQL> quit 強制關閉oracle例項 kill oracle 程序 或者關掉oracle $ ps -ef|grep ora_dbw0_$ORACLE_SID $ kill -9 pid 重新啟動oracle $ sqlplus / as sysdba SQL> startup; 根據開發需求建立表空間、使用者及給使用者授權 管理員使用者登入oracle資料庫 1、建立臨時表空間(可以不建立) 查出當前資料庫臨時表空間,主要是使用裡面的存放路徑; select name from v$tempfile; 得到其中一條記錄/u01/app/oracle/oradata/orcl/temp01.dbf 建立臨時表空間plncontrol_temp,大小為100M,表空間使用達到上限可以自動擴充套件20M,最高擴充套件沒有限制: create temporary tablespace plncontrol_temp tempfile '/u01/app/oracle/oradata/orcl/plncontrol_temp.dbf' size 100M reuse autoextend on next 20m maxsize unlimited;  2、建立表空間 查詢出當前資料庫表空間,使用裡面的路徑 select name from v$datafile; 得到其中一條記錄/u01/app/oracle/oradata/orcl/system01.dbf 建立表空間WD,大小為512M,表空間不可擴充套件: create TABLESPACE WD DATAFILE '/u01/app/oracle/oradata/orcl/WD.DBF' SIZE 512M AUTOEXTEND ON; 3、建立使用者和密碼並指定表空間: create user WD IDENTIFIED by 111 DEFAULT TABLESPACE WD TEMPORARY TABLESPACE TEMP; 4、賦予使用者許可權: grant connect,dba to WD; 檢視 Oracle
版本 SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Production CORE 11.2.0.1.0 Production TNS for Linux: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production 檢視 Oracle
執行狀態 SQL> select status from v$instance; STATUS ------------ OPEN 檢視 Oracle 字符集 SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 檢視 Oracle11g 的字符集: 檢視全部字符集:    select name, value$ from props$ where name like '%NLS%'; 檢視服務端的字符集:    select userenv('language') from dual;     HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb11g_home1/ 中右邊框中的 NLS_LANG 鍵所對應的值為即當前 Oracle 客戶端使用的字符集,如 SIMPLIFIED CHINESE_CHINA.ZHS16GBK,再如:american_america.al32utf8  檢視服務端字符集:   SQL>  select * from nls_database_parameters;  檢視客戶端字符集:  SQL> select * from nls_instance_parameters; 檢視 session 字符集:    SQL> select * from nls_session_parameters; 修改 Oracle 字符集 SQL> alter database character set ZHS16GBK; SQL> alter database character set AL32UTF8;Oracle 備份與恢復操作(單例項) 備份 首先指定例項和語言編碼 # export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # export ORACLE_SID=orcl # exp wd/[email protected] file=/u01/192.168.1.37-wd.20170720.dmp grants=y # exp nndx/[email protected] file=/u01/192.168.1.37-nndx.20170720.dmp grants=y 或 # export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # export ORACLE_SID=zzfb # expdp wd/111 directory=DATA_PUMP_DIR dumpfile=192.168.1.81-wd.201728.dmp logfile=192.168.1.81-wd.20170728.log schemas=wd # expdp gdsy/111 directory=DATA_PUMP_DIR dumpfile=192.168.1.81-gdsy.201728.dmp logfile=192.168.1.81-gdsy.201728.log schemas=gdsy 恢復 首先指定例項和語言編碼 # export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # export ORACLE_SID=orcl # imp wd/[email protected] fromuser=wd touser=wd file=/u01/192.168.1.37-wd.20170720.dmp grants=y ignore=y # imp nndx/[email protected] fromuser=nndx touser=nndx file=192.168.1.37-nndx.20170720.dmp grants=y ignore=y 或 # export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # export ORACLE_SID=zzfb # impdp wd/111 directory=DATA_PUMP_DIR dumpfile=192.168.1.81-wd.201728.dmp logfile=192.168.1.81-wd.201728.log schemas=wd # impdp gdsy/111 directory=DATA_PUMP_DIR dumpfile=192.168.1.81-gdsy.201728.dmp logfile=192.168.1.81-gdsy.201728.log schemas=gdsy 檢視DATA_PUMP_DIR路徑 SQL> select * from dba_directories; 刪除臨時表空間 --檢視臨時表空間檔案 select name from v$tempfile; --檢視使用者和表空間的關係 select USERNAME,TEMPORARY_TABLESPACE from DBA_USERS; --如果有使用者的預設臨時表空間是NOTIFYDB_TEMP的話,建議進行更改 alter user xxx temporary tablespace tempdefault; ---設定tempdefault為預設臨時表空間 alter database default temporary tablespace tempdefault; --刪除表空間NOTIFYDB_TEMP及其包含資料物件以及資料檔案 drop tablespace NOTIFYDB_TEMP including contents and datafiles; 刪除使用者表空間 --查看錶空間檔案 select name from v$datafile; --停止表空間的線上使用 alter tablespace 表空間名稱 offline; --刪除表空間NOTIFYDB_TEMP及其包含資料物件以及資料檔案 drop tablespace NOTIFYDB_TEMP including contents and datafiles; Oracle使用者許可權查詢相關操作: --檢視所有的使用者 select * from all_users; --檢視當前使用者資訊 select * from user_users; --檢視當前使用者的角色 select * from user_role_privs; --檢視當前使用者的許可權 select * from user_sys_privs; --檢視當前使用者的表可操作許可權 select * from user_tab_privs; --檢視某一個表的約束,注意表名要 大寫 select * from user_constraints where table_name='TBL_XXX'; --檢視某一個表的所有索引,注意表名要 大寫 select index_name,index_type,status,blevel from user_indexes where table_name = 'TBL_XXX'; --檢視索引的構成,注意表名要 大寫 select table_name,index_name,column_name, column_position FROM user_ind_columns WHERE table_name='TBL_XXX'; --系統資料字典 DBA_TABLESPACES 中記錄了關於表空間的詳細資訊 select * from sys.dba_tablespaces; --檢視使用者序列 select * from user_sequences; --檢視資料庫序列 select * from dba_sequences; --修改使用者密碼 alter user 使用者名稱 identified by 新密碼; 刪除使用者以及所有關聯的資料庫物件 在命令列中輸入 $ sqlplus / as sysdba 刪除使用者A,級所有和使用者A關聯的資料 SQL> drop user a cascade; 重建使用者A SQL> create user A identified by 密碼; SQL> grant connect,resource to A; 登入A使用者,就ok了 SQL> conn A/密碼 例項格式 192.168.1.81:[email protected] wd/dc/111 錯我解決 ORA-01034: ORACLE not available 可能是資料庫例項沒有啟動 檢視資料庫狀態: $ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 16-SEP-2017 09:20:27 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused 啟動資料庫監聽: $ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 16-SEP-2017 09:20:45 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/xiao100/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 16-SEP-2017 09:20:45 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/xiao100/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) The listener supports no services The command completed successfully 啟動例項: $ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Sat Sep 16 09:21:09 2017 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 1653518336 bytes Fixed Size 2213896 bytes Variable Size 1056966648 bytes Database Buffers 587202560 bytes Redo Buffers 7135232 bytes Database mounted. Database opened.