作 者: xuwedo
(一) 從文件中加載數據
1、有三種方法向IQ table中加入數據:
(1)、用LOAD TABLE命令,從命名管道或文件中將數據導入表中。(速度是最快的)
(2)、用INSERT FROM SELECT 命令,將其他表中的數據加入當前表中。
(3)、用INSERT VALUES命令,“手動”地向表中加入數據。
2、關于數據加載和鎖:
(1)、當一個用戶正在裝載、插入或修改一個表中的數據時,其他用戶可以對該表進行查詢操作。(原理是:版本控制)
(2)、多個用戶可以并發地執行DML語句,但必須針對不同的表。
(3)、如果多個用戶試圖修改同一個表,則第一個用戶獲得DML鎖。
3、從文件中裝入數據的例子:
LOAD TABLE customer(customer_id ‘|’
,cust_type ‘|’
,organization ‘|’
,contact_name ‘|’
,contact_phone ‘|’
,address ‘|’
,city ‘|’
,country ‘\x0a’)
FROM ‘/work/data/cutomer1.dat’
ESCAPES OFF
QUOTES OFF;
4、刪除表中的數據有三種方法:
(1)、用DELETE 命令:
DELETE FROM customer
WHERE customer_id IN( SELECT cutomer_id FROM customer
WHERE postno = ‘250001’)
(2)、用DROP TABLE命令
(3)、用TRUNCATE TABLE命令
5、刪除后再增加數據有兩種方式:
(1)、插入到刪除后留下的空隙中。
(2)、追加到現有表的最后一行后面。(速度再快一些,但要更大的存儲空間)
由APPEND_LOAD=‘ON’來控制。
6、UPDATE 命令:
UPDATE employee
SET dept_id = 400
WHERE emp_id = 111
(二) 用INSERT語句加載數據
例1:
INSERT INTO dept_head(name,dept)
NOTIFY 20
SELECT emp_fname ||‘ ’||emp_lname AS name
,dept_name
FROM employee JOIN department
ON emp_id = dept_head_id;
commit
例2:
INSERT INTO lineitem(shipdate,orderkey)
LOCATION‘servername.dbname’
PACKETSIZE 512
{SELECT l_shipdate,l_orderkey FROM lineitem};
commit
(三) 使用Sybase IQ
因為本章節均為圖形化操作,比較簡單。略
(四) 用戶的管理和安全
1. 系統預置的兩個組:SYS和PUBLIC組。
想知道系統中共有多少組,用以下命令:
SELECT * FROM Sys.sysgroups
2. 系統管理員的用戶名:DBA,默認密碼為:SQL
3. 向系統中加入用戶有三種方法:
(1)、“GRANT CONNECT”命令,
GRANT CONNECT TO userid [,…]
INDENTIFIED BY password [,…]
注:更改用戶的密碼也是上面的命令,這可能導致管理員無意識地改變現有用戶的密碼,而其目的是增加用戶。此操作沒有警告提示。
(2)、Sybase Central 向導,圖形化操作。
(3)、sp_iqaddlogin存儲過程,
4. 與系統中用戶管理有關的兩個系統表:
IQ_User_Login_Info_Table和IQ_System_Login_Info_Table
如果想查看該系統表中的內容,則可以用以下語句:
SELECT * FROM IQ_User_Login_Info_Table
5. 與管理用戶有關的幾個存儲過程:
sp_iqmodifyadmin
sp_iqaddlogin
sp_iqprocess_login
sp_iqdroplogin
sp_iqlistexpiredpasswords
sp_iqlistlockedusers
sp_iqlistpasswordexpirations
sp_iqlocklogin
sp_iqmodifylogin
sp_iqpassword
(五) 事務管理和鎖
1、與事務有關的幾個命令:
(1)、開始一個事務:
BEGIN TRANSACTION [transaction_name]
(2)、提交一個事務:
COMMIT [work]
(3)、回滾一個事務:
ROLLBACK [work]
(4)、在當前事務中建立一個保存點:
SAVEPOINT [savepoint_name]
(5)、回滾到一個保存點:
ROLLBACK TO SAVEPOINT [savepoint_name]
(6)、將改變保存到磁盤上:
CHECKPOINT
(7)、執行完一條語句后,自動提交:
WITH CHECKPOINT ON
(六) 監控和問題解決
1、 可以在Sybase Central中監控用戶
2、 存儲過程:sp_iqconnection可以顯示用戶連接的信息。包括connection_handle,User_ID,最后的請求的時間,最后IQ命令時間等。
3、 用drop connection connection_handle可以讓服務器主動斷開與某用戶連接。
4、 用sp_iqcontext來顯示服務器上執行SQL語句的情況,包括哪個用戶正在執行哪條SQL語句,是否提交等信息。
5、 將服務器執行SQL情況寫入日志:
方法1:
-zr SQL ;表明要收集SQL語句信息
-zo c:\\sqllog.txt ;重定向請求級別信息到文件中
方法2:
call sa_server_option (‘request_level_logging’ , ‘SQL’);
call sa_server_option(
‘ request_level_log_file ’,’sqllog.txt’);
關閉將SQL信息寫入日志文件中:
call sa_server_option (‘request_level_logging’ , ‘’);
call sa_server_option(
‘ request_level_log_file ’,NONE);
6、 用sp_iqtransaction查看系統中事務的相關信息。
7、 錯誤處理:
(1)、UNIX 下有一腳本:getiqinfo.sh
(2)、Windows下為getiqinfo.bat
來得到服務器的相關信息,然后將生成的報告發送給Sybase即可。
(七) 管理DBspace 和索引
1、 改變DBSPACE的模式或改變DBSPACE的大小:
ALTER DBSPACE
2、 卸載一個空的DBSPACE:
DROP DBSPACE
3、 報告DBSPACE的一般信息和模式:
Sp_iqdbspace
4、 報告DBSPACE中的OBJECTS和它們的大小信息。
Sp_dbspaceinfo
5、 將一個DBSPACE中的OBJECTS移動到另一個DBSPACE中:
Sp_iqrelocate
6、 Sp_iqrebuildindex存儲過程重新建立某列的索引。
7、 管理DBspace 和索引的操作均可以在Sybase Central中操作,比較簡單。
(八) 備份和恢復
1、Sybase IQ server有三種備份類型:
(1)、完全備份
(2)、增量備份
(3)、完全備份的基礎上增量備份
注:增量備份和完全備份的基礎上增量備份都會對Catalog Store 進行完全備份。
默認情況下為完全備份。
2、Sybase IQ server的順序:
(1)、Catalog Store
(2)、Transaction log File
(3)、IQ Store
3、當IQ server正在備份時:
(1)、默認情況下操作員必須在現場,掛持接備份介質。
(2)、操作員可以不在場,但必須正確地估算出備份的數據量大小,并且在安裝備份設備時,要選“高級”安裝方可。
4、備份命令:
BACKUP DATABASE [CRC ON|OFF]
[Attended ON|OFF]
[BLOCK FACTOR integer]
[{FULL|INCREMENTAL|INCREMENTAL SINCE FULL}]
TO ‘archive_device’ [SIZE # of KB integer]
例子:
BACKUP DATABASE TO ‘dev/rmt/0n’
注:BACKUP不支持裸設備
5、系統級別的備份:
如果IQ server運行時進行系統級別的備份,則會導致服務崩潰或丟失數據。所以,必須確定IQ server是停止狀態時,方可進行系統級別備份。
6、備份的恢復:
(1)、必須連接到utility_db數據庫后才可以進行恢復操作,并且在恢復數據時不能有用戶連接到數據庫。
(2)、如果有完全恢復,Catalog Store 和Transaction Log(即.db 和.log文件)必須從目標文件夾下刪除。
(3)、如果為增量恢復,Catalog Store 和Transaction Log(即.db 和.log文件)必須存在于目標文件夾中。
7、恢復的命令:
RESTORE DATABASE ‘c:\\newdir\\mydb.db’
FROM ‘c:\\asiq\\backup1’
FROM ‘c:\\asiq\\backup2’
在進行恢復時,必須注意恢復的順序和備份時的順序完全一致。
8、數據庫備份后,配置文件和日志文件是沒有被備份的,所以如果恢復時要單獨對這兩種文件進行恢復。配置文件可以直接拷貝即可,但日志文件是不能用原來的.log文件的。
如果恢復到原來的目錄中,則不用新建.log文件。如果沒有恢復到原目錄,則必須用dblog工具手動生成.log文件。
9、dblog工具的命令語法:
Dblog [option] database_file
Option:
-t log-name,指定事務log文件名。
-m mirror-name,設置事務日志鏡象名。
-r,停止事務日志的鏡象。
-o,輸出日志信息到文件。
-q,安靜模式,不打印信息。
例:dblog –t demolog.log asiqdemo
(九) Sybase IQ的多元架構
(十) 創建一個多元架構的數據庫
在Sybase Central中完成。略。