安裝前的準備及注意事項
1.檢查系統版本、內核、記憶體大小、磁盤空間等,如檢查glibc要求2.3以上 rpm -qa | grep glibc
2.建議不要使用root身份進行資料庫的安裝
cd /etc/security/
vi limits.conf
xxx soft nofile 65536
xxx hard nofile 65536
// 保存后,查看是否成功
ulimit -a
4.設定圖形界面
先檢查是否能打開圖形化界面:輸入 `xclock`;在root下輸入 `xhost +` 然后切換到操作用戶
報xclock 沒有這個命令,執行`yum install xorg-x11-apps`
圖形化安裝
進入檔案安裝目錄,執行./DMInstall.bin,開始一步一步。程序中會提示執行root_install.sh,啟動AP服務。
圖形化實體化資料庫
?/tool(沒有配置環境變數) 目錄下執行./dbca.sh,打開資料庫配置助手界面,程序中會要以root身份執行/script/root/dm_service_installer.sh 進行資料庫的注冊(/bin/DMServiceDMSERVER 到 /etc/rc.d/init.d/DMServiceDMSERVER)。填寫資料庫名、埠、用戶名、密碼、檔案目錄等資訊。注:簇大小、頁大小設定后不能修改。不設定環境變數,就需要進入/tool 目錄執行。以下命令都是配置環境變數的寫法。
命令列安裝
?如果已經存在資料庫,可以在安裝的根目錄執行 ./uninstall.sh 進行卸載。卸載后會保留之前創建的資料庫實體。
?進入安裝檔案所在目錄 ./DMInstall.bin -i 按照流程一步一步選擇。
?安裝完成后,如果想用之前創建的資料庫服務,可以在cd /script/root 執行./dm_service_installer.sh -t dmserver -p DMSERVER -i /xx/data/DAMENG/dm.ini -p: 之前創建的資料庫服務名; -i : 之前服務的組態檔路徑。 可執行dm_service_installer.sh -h 查看命令說明
命令列方式實體化資料庫
?查看用法 dminit.sh help
?安裝 dminit path=/dm7/data db_name=DMMENG01 instance_name=DMSERVER01 port=5237
?注冊服務 cd /script/root 執行./dm_service_installer.sh -t dmserver -p DMSERVER01 -i /dm7/data/DAMENG01/dm.ini
?啟動服務 可以在manager界面手動啟動,也可以在 /etc/rc.d/init.d/ service DmServiceDMSERVER01 start
啟動服務方法
?DM服務器查看器 (cd tool ./dmservice.sh下打開的界面),手動操作
?Linux服務方式 /etc/rc.d/init.d/ service DmServiceDMSERVER01 start
?命令方式 /bin ./dmserver path=/xx/xx/DAMENG/dm.ini 關閉視窗服務即關閉
目錄說明
?/bin:disql、dminit等命令列工具
?/tool:客戶端工具
打開DM服務查看器:./dmservice.sh
打開DM控制臺:./console
建庫:./dbca.sh
資料遷移:dts
打開管理端:./manager
?/script/root:
root_install.sh: 啟動AP服務,一般在安裝時執行一次。
dm_service_install.sh 注冊資料庫服務
dm_service_uninstaller.sh 卸載資料庫服務
連接資料庫:
? /bin disql 默認5236埠
?連接其它埠 disql sysdba(用戶名)/(密碼)@localhost:5237
?可以配置連接串 /etc/dm_svc.conf DMSERVER01=(127.0.0.1:5237) disql sysdba(用戶名)/(密碼)@DMSERVER01
?客戶端工具 cd tool manager
設定環境變數
用戶所在目錄下的 .bash_profile 檔案 export PATH="$PATH:$DM_HOME/bin:$DM_HOME/tool"
保存后要 source .bash_profile 才能生效
sql 簡單資料字典查詢命令
?查詢服務配置 select * from V$DM_INI
?查詢服務配置引數型別 select DISTINCT PARA_TYPE FROM V$DM_INI
?查詢表空間 select * from V$TABLESPACE
?查詢資料檔案 select * from DBA_DATA_FILES
?查詢塊資訊 select * from USER_SEGMENTS
?查詢用戶 select * from DBA_USERS
?設定服務引數 sp_set_paravalue(scope int, paraname varchar(256), value int64)
DM執行緒
?先查行程PID ps -ef | grep dmserver
?方法1:根據行程PID查詢執行緒 ps -T -p PID
?方法2:select * from V$THREADS
表空間管理
?資料字典查詢 ?select * from dba_tablespaces;
?select * from v$tablespace;
?select * from DBA_DATA_FILES;
?select * from "V$DATAFILE";
?表空間管理
聯機狀態下不能對表空間資料檔案重命名。資料檔案不能drop、offline。表空間可以offline。表空間檔案大小只能改大,不能改下。 ?MD管理工具圖形化界面,表空間中創建、修改檔案名、表空間名。修改檔案名不需要進行表空間脫機操作,應該是工具會自動進行。
?命令列方式 ?創建 create tablespace tbs02 datafile '/xx/data/DAMENG/tbs02.dbf' size 200;
?修改表空間資料名 alter tablespace tbs02 rename datafile'/xx/data/DAMENG/tbs02.dbf' to '/xx/data/DAMENG/tbs02.ttt'; 如果此時表空間在聯機狀態,會提示錯誤資訊。需要將表空間 alter tablespace tbs02 offine,然后進行修改。修改成功后 alter tablespace online
?修改表空間檔案大小,只能改大,不能改小。alter tablespace tbs02 resize datafile'/xx/data/DAMENG/tbs02.dbf' to 400;
?修改自動擴展 alter tablespace tbs02 datafile '/xx/data/DAMENG/tbs02.dbf' autoextend off;
?修改最大檔案大小 alter tablespace tbs02 datafile '/xx/data/DAMENG/tbs02.dbf' autoextend on NEXT 4 MAXSIZE 500
重做日志
重做日志可以重命名,不能洗掉。修改檔案名時需要在 alter database mount 狀態下。修改成功后 alter database open
重做日志默認有兩個,在/data/DAMENG(資料庫實體名)/ DAMENG01.LOG 和DAMENG02.log
?資料字典查詢 ?select * from "V$RLOG"
?select * from "V$RLOGFILE"
?圖形化界面操作 ?DM管理工具中的管理服務器 - > 管理服務器 -> 日志檔案
?命令列方式 ?添加重做日志 alter database add logfile '/xx/data/DAMENG/DAMENG03.log' size 500;
?修改大小 alter database RESIZE logfile '/xx/data/DAMENG/DAMENG01.log' to 500;
?修改檔案名:alert database RENAME logfile '/xx/data/DAMENG/DAMENG03.log' to '/xx/data/DAMENG/DAMENG04.log'
臨時表空間(TEMP.dbf)
臨時表空間可增加資料檔案,但不能修改 autoextend 屬性
?查詢臨時表空間資訊 select para_name,para_value,para_type from v$dm_init where para_name like '%TEMP%'
?添加臨時表空間檔案 alter tablespace temp add datafile '/xx/data/DAMENG/TEMP01.dbf' size 200;
?修改檔案大小 alter tablespace temp resize datafile '/xx/data/DAMENG/TEMP01.dbf' to 300;
UNDO(ROLL.dbf)表空間
存放DML(insert、update、delete)的回滾操作。可以和普通表空間一樣進行操作。
UNDO_RETENTION 90 保留時間90秒
?查詢臨時表空間資訊 select para_name,para_value,para_type from v$dm_init where para_name like '%UNDO%'
?添加檔案 alter tablespace ROLL add datafile '/xx/data/DAMEMG/ROLL02.DBF'
?修改檔案大小 alter tablespace ROLL resize datafile '/xx/data/DAMEMG/ROLL02.DBF to 250'
?修改autoextend alter tablespace ROLL datafile '/xx/data/DAMEMG/ROLL02.DBF autoextend off'
?修改檔案最大大小 alter tablespace ROLL datafile '/xx/data/DAMEMG/ROLL02.DBF autoexteng on NEXT 4 MAXSIZE 500'
系統表空間
存放系統相關表定義,表越多、索引越多占用系統表空間越大。
select * from SYS.SYSCOLUMNS
用戶管理
?DM管理工具 ?用戶 -> 用戶管理
?命令列方式 ?創建索引表空間 create tablespace "tbs_index" datafile '/xx/data.DAMENG/tbs_index.dbf'
?創建用戶指定表空間和索引空間 create user test IDENTIFIED by dameng123 default tablespace "tbs" default index tablespace "tbs_index"
?增加登錄錯誤次數超過3次會被鎖定 alter user test limit FAILED_LOGIN_ATTEMPS 3, PASSWORD_LOCK_TIME 3
?解鎖用戶 alter user test account unlock
?給用戶授權(角色) ? grant "PUBLIC" to "TEXT" 也可以在DM管理工具操作:用戶-》修改-》所屬角色
? revoke "PUBLIC" from TEST 回收權限
權限管理
?通過資料字典查看物件、系統權限 ?查看當前用戶表(物件)權限 select * from USER_TAB_PRIVS
?查看當前用戶系統權限 select * from USER_SYS_PRIVS
?select * from dba_tab_privs
?select * from dba_sys_privs
?系統權限和物件權限 ?系統權限:比如 創建表
?物件權限:查詢某個表
?賦予系統權限 ?賦予創建表的權限 grant create table to test
?賦予物件權限、回收權限給某用戶。
針對 select, update, insert 欄位賦權的情況,不能按列回收權限,需要 revoke 回收整個表的權限。 ?賦予某表權限給用戶 grant update,delete,insert on dmhr.employee to test
?回收權限 'revoke update,delete,insert on dmhr.employee from test'
?賦予查詢某表個別欄位的權限 grant select(employee_id,employee) on dmhr.employee to test
?執行insert,update,delete 需要commit 或者 rollback
角色管理
?相關資料字典 ?select * from USER_ROLE_PRIVS
?select * from DBA_ROLE_PRIVS
?select * from DBA_ROLES
?命令列方式創建 create ROLE r_test
?賦物件權限給某個角色 grant update,delete,insert,select on dmgr.employee to r_test
模式物件管理
一般情況下,創建用戶會默認創建一個和用戶同名的模式。
一個用可以有多個模式,一個模式屬于一個用戶。一個模式下有多個物件(表、索引等)。
?管理模式
?命令列操作 create schema s_test AUTHORIZATION test
?管理表
?表空間關系 ?假如用戶沒有指定默認表空間、創建表也沒有指定默認表空間,表默認存盤 MAIN 表空間
?假如用戶指定默認表空間、創建表沒有指定默認表空間,使用的是用戶指定的默認表空間
?創建表指定默認表空間,使用的是用戶指定的表空間
?資料字典查詢 select * from USER_TABLES
?命令列創建 ?默認當前用戶的表空間 create table test(id int,name varchar(100))
?指定表空間 create table test(id int,name varchar(100)) storage(on main)
?指定創建某個模式的表 create table s_test.test(id int,name varchar(100)) table_s 模式名。SYSDBA才有權限,用戶要有這個模式的權限。
?自增列 create table test(id int identity,name varchar(100))
?帶主鍵約束create table test (id int inentity primary key,name varchar(100))
?使用某個模式的表創建一個結構一樣,并復制資料的表 create table test as select * from dmhr.employee
?添加約束
?查看約束相關字典 ?select * from USER_CONSTRAINT
?select * from USER_CONS_COLUMNS
?主鍵約束 ?給表添加主鍵約束 alter table test ADD CONSTRAINT PK_id primary key(id) PK_id是主鍵名
?直接創建帶主鍵的表 create table test (id int inentity primary key,name varchar(100))
?外鍵約束 ?給表添加外鍵約束 如員工表有dept_id 欄位 alert table emp ADD CONSTRAINT fk_emp_deptid FOREIGN key (dept_id) REFERENCES dept(dept_ID)
?直接創建帶外鍵的表 create table test (id int,name varchar(100),dept_id int FOREGIN key PEFERENCES dept(DMHR.dept_ID))
?唯一約束 ?主鍵是唯一約束
?create table test(dept_id int UNIOUE)
?check 約束 ?如年齡大于6歲 alter table test add constraint "check_age" check(AGE >=6) check_age 約束名字
切換模式
?不是當前用戶模式,不允許切換
?命令 disql 下 set SEHEMA s_test
管理視圖
視圖不占用存盤空間,簡單視圖可以做增刪改操作;復雜視圖比如帶group by、集函式不支持DML操作
?資料字典 select * from user_view
?命令列創建 create view v_test AS select * from emp
管理索引
索引是雙刃箭,降低DML操作速度為代價,提高查詢速度
?查詢資料字典
?select * from USER_INDEXES
?select * from USER_IND_COLUMNS
?命令方式創建
不指定模式,默認當前模式
?create index ix_emp_empNAME on emp(emp_NAME);
?索引重建(現網推薦 online):
alter index IX_EMP_EMPNAME rebuild
alter index IX_EMP_EMPNAME rebuild online
?收集統計資訊
不會自動收集統計資訊,需要手動收集
?查看執行計劃 disql 下explain select * from test.t_test where name = '11' 查看這條陳述句的執行計劃。name 已經建了索引。課上執行計劃沒有走索引進行查詢,但是親測時是走了。課上需要進行統計資訊的收集。
?查看統計資訊 disql call dbms_stats.table_stats_show(''TEST,'T_TEST') test用戶的t_test表
?執行統計資訊 call dbms_stats.gather_table_status('TEST','T_TEST') 然后執行查看計劃,發現走索引了。
資料字典和動態性能視圖
?資料字典 ?DBA_*:查詢資料庫中所有的物件,比如 DBA_TABLES, DBA_VIEWS, DBA_OBJECTS, DBA_ROLES,DBA_ROLE_PRIVS,DBA_SOURCE 原始碼等。
?ALL_*:查詢當前用戶所訪問權限范圍內物件
?USER_*:查詢當前用戶下的物件。
動態性能視圖
?v$ 開頭的是動態視圖。
如:v$datafile、v$tablespace、v$session、v$men_pool 、v$lock等等。
?注意:當 A 洗掉操作,未提交,另外一個會話 B 執行洗掉 該記錄時會產生行鎖。可查看 v$lock;
資料庫備份還原
?基礎知識
?物理備份、邏輯備份 (聯機 dimp 和 dexp)
?聯機備份、脫機備份。聯機(資料庫開啟狀態),脫機(資料庫關閉狀態)
?備份分類:全庫備份、表空間備份、表備份(只能聯機下備份)、歸檔日志備份。
?物理備份包含聯機備份、脫機備份
?DM控制臺工具進行脫機備份,DM服務器管理工具進行聯機備份
?需要開啟APService服務,有時AP服務會停,這時需要啟動。會出現啟動失敗的問題,查看日志后,如果報管道檔案已經存在,就到/dmdbms/bin下洗掉檔案 rm -R DM_PIPE*
?備份檔案包含元資料和備份檔案:
?聯機備份需要開啟歸檔
?命令列方式(disql) ?開歸檔需要讓資料庫在mount alter database mount
?開啟歸檔 alter database archivelog
?設定歸檔 alter database add archivelog 'dest=/xx/dmdbms/arch,type=local,file_size=100,space_limit=1024'
?打開狀態 alter database open
?客戶端工具方式 DM管理工具-》管理服務器-》系統管理進行狀態轉換,歸檔配置進行設定。
?查看是否開啟歸檔(資料字典方式) select arch_mode from v$database
?聯機備份與還原
?命令列方式(disql) ?庫備份backup database full backupset 'full' 第一個full是全庫備份,第二個full是備份的檔案夾。不指定目錄,默認在當前示例(/data/DAMENG/bak 目錄)的目錄。
?表空間備份backup tablespace "tbs_02" backupset 'tbsfull' 表空間要加雙引號,不然報無效的表空間錯誤,如果指定目錄,需要寫絕對目錄路徑
?還原
Alter tablespace "tbs_02" offline;
restore tablespace "tbs_02" datafile 1 from backupset '/xx/data/DAMENG/bak/tbsfull';
Alter tablespace "tbs_02" online;
?注意:資料庫表空間恢復會自動恢復到最新狀態,假如在備時中 A 表存在,后來 洗掉 A 表,這時資料庫表空間恢復,會自動根據歸檔日志恢復到最新狀態,所以沒有A表。
?DM管理工具,備份中進行操作
?脫機備份與還原恢復
脫機備份,是使用工具 dmrman,在脫機狀態下備份,APService 服務需要開 啟。脫機備份只能進行全庫備份和歸檔備份。不指定目錄,默認創建在bak下。
? dmrman 回車開始執行命令。最好進安裝目錄下的/bin 執行。
?命令方式備份 backup database '/xx/data/DAMENG/dm.ini' backupset '/xx/backup/dmrman'
?命令方式還原 restore database 'xx/data/DAMENG/dm.ini' from backupset '/xx/backup/dmrman'
?命令方式恢復 recover database 'xx/data/DAMENG/dm.ini'
?視窗工具在DM控制工具中進行操作
?邏輯備份
dexp ()和 dimp 在終端直接執行
支持全庫匯出、按用戶名匯出、模式名匯出、表匯出
?導表 dexp userid=TEXT/xxxxx tables='t_t
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248237.html
標籤:其他技術專區
上一篇:【美妙人生】Hadoop課程系列之HDFS--手把手教你精通HDFS
下一篇:海思3536QT移植翻譯出問題
