使用DB2查询创建表的实现方法如下:
db2
=>create
table
t1
(
id
integer,name
varchar(12),address
varchar(50))
db2
=>insert
into
t1
values(1,'wjz','sdfsfds'),(2,'lw','v4')
db2
=>
select
from
t1
ID
NAME
ADDRESS
-----------
------------
--------------------------------------------------
1
wjz
sdfsfds
2
lw
v4
2
条记录已选择。
db2
=>
create
table
t3
as
(select
id,name
from
t1)
data
initially
deferred
refresh
deferred
db2
=>
refresh
table
t3
DB20000I
SQL命令成功完成。
db2
=>
select
from
t3
ID
NAME
-----------
------------
1
wjz
2
lw
2
条记录已选择。
db2
=>
insert
into
t1
values(3,'wxb','csk')
DB20000I
SQL命令成功完成。
db2
=>
refresh
table
t3
DB20000I
SQL命令成功完成。
db2
=>
select
from
t3
ID
NAME
-----------
------------
1
wjz
2
lw
3
wxb
3
条记录已选择。
在日常DB2的维护中,transaction log full是比较常见的问题,日志空间使用情况也是我们比较重视的问题,那么如何查看日志空间使用情况呢?
其实昨天在提到归档设置,我们知道DB2 在DATABASE级别有几个参数,如下决定了事物日志的使用空间大小
Log file size (4KB) (LOGFILSIZ) = 60000
Number of primary log files (LOGPRIMARY) = 16
Number of secondary log files (LOGSECOND) = 200
Changed path to log files (NEWLOGPATH) =
Path to log files = /db2inst1_log01/sample
如此我们可以计算分配给日志的空间大约是(200+16)600004/1024/1024大约50GB。
如果日志是单独的文件系统分区,我们在 *** 作系统上即可看到日志空间使用情况,对日志使用情况进行监控,可以看到如下信息:
$ df -g
Filesystem GB blocks Free %Used Iused %Iused Mounted on
/dev/db2inst1_log01 6000 5450 10% 1458 1% /db2inst1_log01
这个需要登录到系统,其实db2pd也是可以看到日志信息的
db2pd -d sample -logs
Database Partition 0 -- Database SAMPLE -- Active -- Up 34 days 17:30:12 -- Date 2013-11-26-104249558342
Logs:
Current Log Number 117123
Pages Written 33697
Cur Commit Disk Log Reads 0
Cur Commit Total Log Reads 0
Method 1 Archive Status Success
Method 1 Next Log to Archive 117123
Method 1 First Failure n/a
Method 2 Archive Status n/a
Method 2 Next Log to Archive n/a
Method 2 First Failure n/a
Log Chain ID 2
Current LSN 0x00001A2DDE649E70
Address StartLSN State Size Pages Filename
0x0700000177B795D0 00001A2CBFD88010 0x00000000 60000 60000 S0117104LOG
0x0700000177B806D0 00001A2CCE7E8010 0x00000000 60000 60000 S0117105LOG
0x0700000177B8B450 00001A2CDD248010 0x00000000 60000 60000 S0117106LOG
0x0700000177B82EF0 00001A2CEBCA8010 0x00000000 60000 60000 S0117107LOG
0x0700000177B9ECD0 00001A2CFA708010 0x00000000 60000 60000 S0117108LOG
0x0700000177BA27D0 00001A2D09168010 0x00000000 60000 60000 S0117109LOG
0x0700000177B79E30 00001A2D17BC8010 0x00000000 60000 60000 S0117110LOG
0x0700000177BAAD50 00001A2D26628010 0x00000000 60000 60000 S0117111LOG
0x0700000177B9FFD0 00001A2D35088010 0x00000000 60000 60000 S0117112LOG
0x0700000177BB44D0 00001A2D43AE8010 0x00000000 60000 60000 S0117113LOG
0x0700000177BD45D0 00001A2D52548010 0x00000000 60000 60000 S0117114LOG
0x0700000177B7F0D0 00001A2D60FA8010 0x00000000 60000 60000 S0117115LOG
0x0700000177B9C850 00001A2D6FA08010 0x00000000 60000 60000 S0117116LOG
0x0700000177B84750 00001A2D7E468010 0x00000000 60000 60000 S0117117LOG
0x0700000177B877D0 00001A2D8CEC8010 0x00000000 60000 60000 S0117118LOG
0x0700000177B857D0 00001A2D9B928010 0x00000000 60000 60000 S0117119LOG
0x0700000177B7DC50 00001A2DAA388010 0x00000000 60000 60000 S0117120LOG
0x0700000177B83750 00001A2DB8DE8010 0x00000000 60000 60000 S0117121LOG
0x0700000177B907B0 00001A2DC7848010 0x00000000 60000 60000 S0117122LOG
0x0700000177B91010 00001A2DD62A8010 0x00000000 60000 60000 S0117123LOG
0x0700000177B9A150 00001A2DE4D08010 0x00000000 60000 60000 S0117124LOG
不过之只能看到当前使用日志和日志文件对应的LSN信息和归档情况,对于使用率还真不能看到。
另外还可以在实例快照中看到,不过在此不示例了。
但是上面我们需要登录到 *** 作系统上,如何在远端通过SQL查询呢,其实DB2还是提供了蛮多的方法。
a通过管理视图查询:
select DB_NAME, LOG_UTILIZATION_PERCENT, TOTAL_LOG_USED_KB,TOTAL_LOG_AVAILABLE_KB,TOTAL_LOG_USED_TOP_KB, DBPARTITIONNUM from SYSIBMADMLOG_UTILIZATION;
DB_NAME LOG_UTILIZATION_PERCENT TOTAL_LOG_USED_KB TOTAL_LOG_AVAILABLE_KB TOTAL_LOG_USED_TOP_KB DBPARTITIONNUM
-------------------------------------------------------------------------------------------------------------------------------- ----------------------- -------------------- ---------------------- --------------------- --------------
DSS 897 4631824 46955050 16655013 0
非常清楚一目了然吧,对于监控事物日志使用情况,及早发现事务日志空间满问题很有帮助。
b还有一种方法,就是查看快照视图:
select int(total_log_used/1024/1024) as "Log Used (Mb)",int(total_log_available/1024/1024) as "Log Space Free(Mb)",
int((float(total_log_used)/float(total_log_used+total_log_available))100) as "Pct Used",int(tot_log_used_top/1024/1024) as "Max Log Used (Mb)",
int(sec_log_used_top/1024/1024) as "Max Sec Used (Mb)",int(sec_logs_allocated) as "Secondaries" from sysibmadmsnapdb;
Log Used (Mb) Log Space Free(Mb) Pct Used Max Log Used (Mb) Max Sec Used (Mb) Secondaries
------------- ------------------ ----------- ----------------- ------------------ -----------
4544 45833 9 16264 12532 5
1 record(s) selected
其实还有一种通过表函数的方法,不过需要带入参数:
select DB_NAME,TOTAL_LOG_AVAILABLE,TOTAL_LOG_USED,SEC_LOG_USED_TOP,SEC_LOGS_ALLOCATED from table(SNAP_GET_DB('SAMPLE',0))
DB_NAME TOTAL_LOG_AVAILABLE TOTAL_LOG_USED SEC_LOG_USED_TOP SEC_LOGS_ALLOCATED
-------------------------------------------------------------------------------------------------------------------------------- -------------------- -------------------- -------------------- --------------------
SAMPLE 48045192251 4779767749 13141773417 5
1 record(s) selected
看吧,DB2查看日志空间的方法真的很多,不能不说提供了强大的用户接口,就看大家怎么用了。
转载仅供参考,版权属于原作者。祝你愉快,哦
以上就是关于db2 查看创建了多少个数据库全部的内容,包括:db2 查看创建了多少个数据库、如何查看db2的数据库的日志文件、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)