1、打開sqlplus連接
su - oracle
sqlplus /nolog
2打開數據庫
conn sys / as sysdba
sqlplus / as sysdba
---使用sys_context查看屬于哪個容器
select sys_context('USERENV','CON_NAME') from dual;
-- 查看表空間
select * from v$datafile;
select * from v$tempfile;
--查看表空間創建語句
select dbms_lob.substr(dbms_metadata.get_ddl('TABLESPACE',a.tablespace_name)) from dba_tablespaces a;
-- 設置數據庫模式
alter pluggable database pdb1 open read write;
--查詢當前容器具有哪些pdbs
show pdbs;
-- 修改數據庫會話
alter session set container=pdb1;
-- 關閉指定pdb
alter pluggable database 容器名稱 close immediate ;
--若pdb狀態為need sync,則需要:同步文件
select pdb_name,status from cdb_pdbs;
--創建表空間
create tablespace ams datafile '/u01/App/oracle/oradata/ams.pdf' size 2048m autoextend on next 10m maxsize 4000m;
--修改用戶默認表空間
alter user 用戶名 default tablespace to 表空間名稱;
-- 刪除表空間 including contents 表示刪除表空間的同時刪除表空間中的數據。如果不指定including contents 參數,而該表空間又存有數據時,則Oracle會提示錯誤。
cascade constraints: 表示當刪除表空間時也刪除相關的完整性限制。
drop tablespace 表空間名稱 including contents ;
--授予用戶使用表空間權限
grant unlimited tablespace to 用戶;
grant create session to ams;
在Oracle12c中分為兩類用戶一類為PDB本地用戶,一類為公共用戶,創建PDB用戶需要切換到PDB數據庫。
-- oracle查看當前庫中所有表空間
select file_name,tablespace_name,bytes from dba_data_files;
create user 用戶名 identified by 密碼 default tablespace 表空間名稱;
create user ams identified by ams132 default tablespace ams;
grant sysdba to ams;
-- 通過dba_data_files查看oracle系統的數據文件。
col file_name for a50;
set linesize 100;
select file_name,tablespace_name from dba_data_files;
--通過dba_temp_files查看臨時數據文件信息
select file_name,tablespace_name from dba_temp_files;
-- 控制文件信息查看
select name from v$controlfile;
-- 日志文件信息查看
select member from v$logfile;
-- 查看當前系統是否采用遞歸模式
select dbid,name,log_mode from v$database;
-- 查看歸檔日志文件的所在路徑
show parameter log_archive_dest;
若顯示spfile 的指定參數的信息,則只需使用show parameter + 參數。
-- 告警文件存儲路徑查看
show parameter background_dump_dest;
-- 顯示當前進程的PGA信息。
show parameter pga;
-- 顯示數據寫入進程個數。
show parameter db_writer_processes;
使用set time on 命令設置在sqlplus命令提示符“SQL>”顯示當前的系統時間。
set time on;
set pagesize value; --一頁中所顯示數據行的數量。
show pagesize;-- 顯示當前sql*plus環境中一頁有多少行。
日志模式切換:
1、改變日志操作模式時,用戶必須以sysdba的身份執行相應的操作。接下來講解數據庫由非歸檔模式切換為歸檔模式的具體操作步驟。
1)、查看當前的日志模式
select log_mode from v$database;
2)、關閉并重新啟動數據庫 (改變日志操作模式必須在mount狀態下進行)
shutdown immediate;
startup mount;
3)改變日志模式
alter database archivelog;
alter database noarchivelog; (將歸檔模式切換為非歸檔模式)
4)、打開數據庫
alter database open;
-- 數據庫歸檔模式
archive log list;
-- 查看指定表空間,有哪些表
select table_name from dba_tables where tablespace_name='AMS' order by table_name;
select yd_acct_no from ams.yd_accounts_all;
oracle邏輯備份
1、創建directory
create or replace directory 目錄名 as '目錄路徑';
2、查看有哪些directory
select owner,directory_name,directory_path from dba_directories;
3、賦權
grant read,write on directory directory名稱 to 用戶;
4、刪除指定directory
drop directory dump_dir;
oracle 版本查看
sqlplus -v
-- 可插拔數據庫創建
create pluggable database 數據庫名 admin user 用戶名 identified by pwd_report
roles=(connect)
file_name_convert=('/oracle/oradata/orcl/pdbseed','/oracle/oradata/orcl/reportpdb');
-- 查看該用戶模式下,擁有的數據表
select table_name from user_tables;
-- 另外,用戶也可以在system模式下,通過檢索dba_tables表來顯示ams模式下擁有的4個數據表。
-- 查看當前用戶表空間
select username,default_tablespace from user_users;
-- 查看當前用戶下所有表空間的使用情況
SELECT
a.tablespace_name "表空間名",
total / ( 1024 * 1024 ) "表空間大小(M)",
free / ( 1024 * 1024 ) "表空間剩余大小(M)",
( total - free ) / ( 1024 * 1024 ) "表空間使用大小(M)",
round(( total - free ) / total, 4 ) * 100 "使用率 %"
FROM
( SELECT tablespace_name, SUM( bytes ) free FROM dba_free_space GROUP BY tablespace_name ) a,
( SELECT tablespace_name, SUM( bytes ) total FROM dba_data_files GROUP BY tablespace_name ) b
WHERE
a.tablespace_name = b.tablespace_name;
SELECT UPPER(F.TABLESPACE_NAME) "表空間名",
D.TOT_GROOTTE_MB "表空間大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
2),
'990.99') || '%' "使用比",
F.TOTAL_BYTES "空閑空間(M)",
F.MAX_BYTES "最大塊(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1;
-- oracle 數據庫整庫大小
select sum(bytes)/1024/1024/1024 from dba_data_files;
-- 查看某表的創建時間
select object_name,created from user_objects where object_name=upper('表名');
-- 查看某表的大小
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('表名');
-- 查看索引
select index_name,index_type,table_name from user_indexes order by table_name;
select * from user_ind_columns where index_name=upper('索引名稱');
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('索引名稱');
-- sqlplus 連接到可插拔數據
conn 用戶名/密碼@實例名;