1、用df 命令查看查看目录所在分区,例如查看/var目录所在分区
2、如果还想看磁盘分区情况,用fdisk -l命令查看
3、语法:df [选项]
说明:linux中df命令可显示所有文件系统对i节点和磁盘块的使用情况。
该命令各个选项的含义如下:
-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以k字节为单位显示。
-i 显示i节点信息,而不是磁盘块。
-t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T 显示文件系统类型。
功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
如果你想了解更详细内容,建议看看刘遄老师的另外就是刘遄老师的《linux就该这么学》,书籍当中有详细的描述;
1创建分区表,INCLUSIVE(包含),exclusive(不包含)
CREATE TABLE "MABAS""BAS_MID_TRANS_LIST_CK_BAK" ( "REPORT_DATE" DATE, "MA_ACCT_NO" VARCHAR(100), "TRANS_DATE" DATE, "ORG_UNIT_ID" VARCHAR(15), "ORG_PROD_ID" VARCHAR(15), "CURR_CD" VARCHAR(15), "ACCT_NO" VARCHAR(15), "TRANS_NUM" VARCHAR(15), "TRANS_NO" VARCHAR(15), "TRANS_DIF" VARCHAR(15), "DEPOSIT_CHAR" VARCHAR(15), "DEPOSIT_BAL" DECIMAL(18,2), "TRANS_AMT" DECIMAL(18,2), "TRANS_TYPE" CHARACTER(1), "FLG" CHARACTER(1), "RATE" DECIMAL(18,6), "TRXMEM" DECIMAL(4,0)) IN "MA_DATA" INDEX IN "MA_INDEX" PARTITION BY RANGE ( "REPORT_DATE" NULLS LAST ) ( PARTITION PART0 STARTING '2010-12-10' INCLUSIVE ENDING '2010-12-20' INCLUSIVE ) ;
ALTER TABLE "MABAS""BAS_MID_TRANS_LIST_CK_BAK" DATA CAPTURE NONE LOCKSIZE ROW APPEND OFF NOT VOLATILE;
COMMENT ON TABLE "MABAS""BAS_MID_TRANS_LIST_CK_BAK" IS '活期交易明细表';
COMMENT ON "MABAS""BAS_MID_TRANS_LIST_CK_BAK" ( "REPORT_DATE" IS '数据日期', "MA_ACCT_NO" IS '管会账号', "TRANS_DATE" IS '营业日期', "ORG_UNIT_ID" IS '行所号', "ORG_PROD_ID" IS '业务品种 ', "CURR_CD" IS '币别', "ACCT_NO" IS '帐号', "TRANS_NUM" IS '交易序号', "TRANS_NO" IS '交易代号', "TRANS_DIF" IS '交易区别', "DEPOSIT_CHAR" IS '存款性质 ', "DEPOSIT_BAL" IS '存款余额', "TRANS_AMT" IS '交易金额', "TRANS_TYPE" IS '交易别', "FLG" IS '连动标志', "RATE" IS '汇率' );
GRANT CONTROL ON TABLE "MABAS""BAS_MID_TRANS_LIST_CK_BAK" TO USER "DB2INST2";
GRANT SELECT, INSERT, UPDATE, ALTER, DELETE, INDEX, REFERENCES ON TABLE "MABAS""BAS_MID_TRANS_LIST_CK_BAK" TO USER "DB2INST2" WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, ALTER, DELETE, INDEX, REFERENCES ON TABLE "MABAS""BAS_MID_TRANS_LIST_CK_BAK" TO USER "DB2INST2" WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, ALTER, DELETE, INDEX, REFERENCES ON TABLE "MABAS""BAS_MID_TRANS_LIST_CK_BAK" TO USER "MAPUB" WITH GRANT OPTION;
2增加分区,注意这里的INCLUSIVE,exclusive,这时只有2011-01-31的数据可以进行insert
alter table MABASBAS_MID_TRANS_LIST_CK_BAK add partition LIST_CK_bak0131 STARTING '2011-01-31' INCLUSIVE ENDING '2011-02-01' exclusive
3insert 数据
insert into MABASBAS_MID_TRANS_LIST_CK_BAK select from MABASBAS_MID_TRANS_LIST_CK where report_date=date('2011-01-31');
4转移分区到临里表
alter table MABASBAS_MID_TRANS_LIST_CK_BAK detach partition LIST_CK_bak0131 into MABASBAS_MID_TRANS_LIST_CK_BAK1
5删除生成的分区迁移表,注意这时分区表的分区(LIST_CK_bak0131)己经不存在了,如果要insert必须新增该分区
drop table MABASBAS_MID_TRANS_LIST_CK_BAK1
以下为应用写的shell脚本,并参照syscatdatapartitions 进行判断,如果有则删除分区,否则进行新建,以下为具体的脚本。
/home/odSUSEr1/profile#配置文件SYSNAME=GDBMAMADS_HOME=/home/odsuser1/gdbma/etl#DS ConfigDSConfigFile=$MADS_HOME/dsconfig_gdbma#MARPT ETL2数据库#DB信息DBNAME=`awk 'FS="=" {if ($0~/^MABASDBName/) print $2}' $DSConfigFile`DBUSR=`awk 'FS="=" {if ($0~/^MABASDBUser/) print $2}' $DSConfigFile`DBPWD=`awk 'FS="=" {if ($0~/^MABASDBPassword/) print $2}' $DSConfigFile`DBSCHEMA=`awk 'FS="=" {if ($0~/^MABASDBSchema/) print $2}' $DSConfigFile`DBPWD=`$MADS_HOME/Encrypt/discryptsh $DBPWD`dbname=$DBNAMEuser=$DBUSRpasswd=$DBPWD#连接数据库db2 connect to $DBNAME user $DBUSR using $DBPWD >/dev/nulldb2 set schema=$DBSCHEMA;#传递参数JOB_NAME=$1DELETE_DATE=$2#DELETE_DBSCHEMA=$1#DELETE_TAB=$2#DELETE_COL=$3#DELETE_TYPE=$4#DELETE_DATE=$5#DELETE_VALUE=$6
delete_tab="select SCH_NAME,TAB_NAME,IF_PARTITION,TAB_DATE,DEL_VALUE from mabass_job_info_m t where JOB_NAME = '"$JOB_NAME"' "DEL_DATA=`db2 -t "$delete_tab"`if [ $ -ne 0 ]thenecho "$SDATA"fiecho "$DEL_DATA" | sed -e '4,/^$/!d;/^$/d'|#循环读取job,然后调度while read SCH_NAME TAB_NAME IF_PARTITION TAB_DATE DEL_VALUEdo#判断删除方式#分区字段拼写if [ "$IF_PARTITION" = 'Y' ] then #分区进行拼写 partiton_name=`db2 -tx "select upper('p'||replace(varchar(date('"$DELETE_DATE"')),'-','')) from sysibmsysdummy1 "` tmp_tab=`db2 -tx "select upper('tmp'||substr(replace(replace(varchar(current timestamp),'-',''),'',''),5,10)) from sysibmsysdummy1 "` #判断分区是否存在 vi_result=`db2 -tx "select count() from syscatdatapartitions t where tabschema = upper('"$SCH_NAME"') and tabname = upper('"$TAB_NAME"') and datapartitionname=upper('"$partiton_name"') "` #对分区进行 *** 作 if [ "$DEL_VALUE" = '-' ] then #判断分区是否存在 if [ $vi_result -ne 0 ] then #进行分区数据到临时表 alter_parition=`db2 -tx "alter table $SCH_NAME$TAB_NAME detach partition $partiton_name into $SCH_NAME$tmp_tab"` #删除临时表 drop_tmp=`db2 -tx "drop table $SCH_NAME$tmp_tab"` #分区结束 partition_end=`db2 -tx "select varchar(date('"$DELETE_DATE"') +1 days) from sysibmsysdummy1"` #增加分区 add_partition=`db2 -tx "alter table $SCH_NAME$TAB_NAME add partition $partiton_name STARTING '"$DELETE_DATE"' INCLUSIVE ENDING '"$partition_end"' exclusive "` else #分区结束 partition_end=`db2 -tx "select varchar(date('"$DELETE_DATE"') +1 days) from sysibmsysdummy1"` #增加分区 add_partition=`db2 -tx "alter table $SCH_NAME$TAB_NAME add partition $partiton_name STARTING '"$DELETE_DATE"' INCLUSIVE ENDING '"$partition_end"' exclusive "` fi else if [ $vi_result -ne 0 ] then #进行分区数据到临时表 drop_parition=`db2 -tx "alter table $SCH_NAME$TAB_NAME detach partition $partiton_name into $SCH_NAME$tmp_tab "` #备份临时表中不属于该条件的数据 delete_tab_date=`db2 -tx "delete from $SCH_NAME$tmp_tab where "$DEL_VALUE" "` #分区结束 partition_end=`db2 -tx "select varchar(date('"$DELETE_DATE"') +1 days) from sysibmsysdummy1"` #增加分区 add_partition=`db2 -tx "alter table $SCH_NAME$TAB_NAME add partition $partiton_name STARTING '"$DELETE_DATE"' INCLUSIVE ENDING '"$partition_end"' exclusive "` #insert 不符合删除条件的数据 insert_date=`db2 -tx "insert into $SCH_NAME$TAB_NAME select from $SCH_NAME$tmp_tab "` else #分区结束 partition_end=`db2 -tx "select varchar(date('"$DELETE_DATE"') +1 days) from sysibmsysdummy1"` #增加分区 add_partition=`db2 -tx "alter table $SCH_NAME$TAB_NAME add partition $partiton_name STARTING '"$DELETE_DATE"' INCLUSIVE ENDING '"$partition_end"' exclusive "` fi fielse #直接删除表 if [ "$DEL_VALUE" = "-" ] then delete_tab_data=`db2 -tx "delete from $SCH_NAME$TAB_NAME where date("$TAB_DATE") = DATE('"$DELETE_DATE"') "` else delete_tab_data=`db2 -tx "delete from $SCH_NAME$TAB_NAME where date("$TAB_DATE") = DATE('"$DELETE_DATE"') and $DEL_VALUE "` fifidone
在一个DB2 实例下,可以创建多个database(具体每个实例下可以创建多少个database,可以通过DB2 GET DBM CFG查看一旦建立了数据库之后,就可以对其进行 *** 作,然而,在向数据库中建立对象或访问数据库中的对象(数据)之前,必须先知道如何启动和停止数据库
本小节简单介绍了db2 database通过command line的方式如何实现启动和停止
激活数据库
如果在database没有激活之前,就在应用中使用connect to database_name或隐式连接,那么应用就必须要进行等待,知道数据库管理器启动了你要连接的数据库一般第一个应用会引发等待数据库管理器执行数据库启动的所有开销
我们也可以使用activate database database_name这样的命令启动特定的数据库这个命令就会免除第一个应用程序连接上来的时候等候数据库初始化所花费的时间。一般情况下,DB2 DBA会提前激活所有必要的数据库
注意:1)如果发出activate database命令的应用已经与一个database建立了活动的数据库连接,就回返回错误消息
2)如果需要重新启动(restart)的数据库接受了一个activate database命令,那么这个activate database命令就会象connect to 或隐式连接一样工作
3)如果数据库配置了
启用的自动重新启动 (AUTORESTART) = ON
那么在activate database命令对其初始化之前,数据库会重新启动
察看指定数据库的配置参数
--默认
DB2 GET DB CFG FOR study
--分屏显示
DB2 GET DB CFG FOR study | More
--将显示结果存入studytxt 文件中
DB2 GET DB CFG FOR study > studytxt
下面是一个示例,我在当前DB2实例下,创建了3个database,我利用activate命令挨个将他们激活
D:DB2BIN>db2 db2start
DB20000I DB2START命令成功完成。
D:DB2BIN>db2 list database directory
系统数据库目录
目录中的条目数 = 3
数据库 1 条目:
数据库别名 = TEST
数据库名称 = TEST
本地数据库目录 = D:DB2test
数据库发行版级别 = c00
注释 = test
目录条目类型 = 间接
目录数据库分区号 = 0
备用服务器主机名 =
备用服务器端口号 =
数据库 2 条目:
数据库别名 = BANK
数据库名称 = BANK
本地数据库目录 = D:db2bank
数据库发行版级别 = c00
注释 = bank
目录条目类型 = 间接
目录数据库分区号 = 0
备用服务器主机名 =
备用服务器端口号 =
数据库 3 条目:
数据库别名 = STUDY
数据库名称 = STUDY
本地数据库目录 = D:db2study
数据库发行版级别 = c00
注释 = STUDY
目录条目类型 = 间接
目录数据库分区号 = 0
备用服务器主机名 =
备用服务器端口号 =
D:DB2BIN>db2 list active databases
SQL1611W “数据库系统监视器”没有返回任何数据。
D:DB2BIN>db2 activate database study
DB20000I ACTIVATE DATABASE命令成功完成。
D:DB2BIN>db2 list active databases
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 0
数据库路径 = D:db2studyDB2NODE0000SQL00001
D:DB2BIN>db2 activate database bank
DB20000I ACTIVATE DATABASE命令成功完成。
D:DB2BIN>db2 list active databases
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 0
数据库路径 = D:db2studyDB2NODE0000SQL00001
数据库名称 = BANK
当前连接的应用程序 = 0
数据库路径 = D:db2bankDB2NODE0000SQL00001
D:DB2BIN>db2 activate database test
DB20000I ACTIVATE DATABASE命令成功完成。
D:DB2BIN>db2 list active databases
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 0
数据库路径 = D:db2studyDB2NODE0000SQL00001
数据库名称 = BANK
当前连接的应用程序 = 0
数据库路径 = D:db2bankDB2NODE0000SQL00001
数据库名称 = TEST
当前连接的应用程序 = 0
数据库路径 = D:DB2testDB2NODE0000SQL00001
D:DB2BIN>停止数据库
由activate database命令初始化的数据库可以由deactivate database命令关闭,也可以通过stop database manager(或db2stop)命令终止数据库管理器来关闭
如果使用activate
database命令初始化一个数据库,那么最后一个与数据库断开连接的应用就不会关闭数据库必须要使用deactivate
database在这种情况下,stop database manager(或db2stop)会关闭数据库,也会终止实例
如果使用connect
to 或隐式地连接启动数据库,然后再由另外一个应用对相同的数据库发出activate database命令,那么就必须使用deactivate
database命令关闭数据库如果没有使用activate
database启动数据库,那么当最后一个应用断开与数据库连接的时候,数据库就会关闭
示例一:使用connect to方式启动的数据库
D:DB2BIN>db2 list active databases
SQL1611W “数据库系统监视器”没有返回任何数据。
D:DB2BIN>db2 connect to study --连接到study数据库,将自动激活study数据库
数据库连接信息
数据库服务器 = DB2/NT 950
SQL 授权标识 = ZHANGRP
本地数据库别名 = STUDY
D:DB2BIN>db2 list active databases
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 1
数据库路径 = D:db2studyDB2NODE0000SQL00001
说明:数据库被激活,并有一个应用连接上来(就上面的connect to study *** 作)
D:DB2BIN>db2 connect reset --断开连接
DB20000I SQL命令成功完成。
D:DB2BIN>
D:DB2BIN>db2 list active databases
SQL1611W “数据库系统监视器”没有返回任何数据。
D:DB2BIN>
说明:可以发现,上面的连接断开后,数据库study也自动停止(因为这个study数据库是通过connect to 的方式激活的)
示例二:使用activate database方式启动的数据库
D:DB2BIN>db2 list active databases --这个时候没有启动的数据库
SQL1611W “数据库系统监视器”没有返回任何数据。
D:DB2BIN>db2 activate database study --用activate database激活study数据库
DB20000I ACTIVATE DATABASE命令成功完成。
D:DB2BIN>db2 list active databases --可以看到study数据已经激活,但没有应用连接上来
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 0
数据库路径 = D:db2studyDB2NODE0000SQL00001
D:DB2BIN>db2 connect to study --发起一个连接到study数据库
数据库连接信息
数据库服务器 = DB2/NT 950
SQL 授权标识 = ZHANGRP
本地数据库别名 = STUDY
D:DB2BIN>db2 list active databases --再看一下活动的数据库,发现study 数据库上有一个应用连接上来了
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 1
数据库路径 = D:db2studyDB2NODE0000SQL00001
D:DB2BIN>db2 connect reset --关闭刚才那个连接,看看数据库是不是会自动关闭
DB20000I SQL命令成功完成。
D:DB2BIN>db2 list active databases --数据库依然启动,虽然没有了任何连接
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 0
数据库路径 = D:db2studyDB2NODE0000SQL00001
D:DB2BIN>db2 deactivate database study --使用deactivate database命令关闭数据库
DB20000I DEACTIVATE DATABASE命令成功完成。
D:DB2BIN>
D:DB2BIN>db2 list active databases
SQL1611W “数据库系统监视器”没有返回任何数据。
D:DB2BIN>
熟悉IBM DB2 UDB的都知道,构筑DB2数据库对象的层次关系,既每台物理机器可以配置多个实例,而每个实例是一个独立的运行环境,在每个实例下可以创建多个数据库,每个数据库可以有多个表空间,而数据库中的表会存放在这些表空间中。那分区数据库中他们的关系又如何,是如何分区的呢?本文就分区数据库的基本概念做简单介绍。有了数据库分区后,在原来构筑DB2数据库对象的层次关系里发生了一些变化,实例增加了一个物理特性,就是实例所拥有的数据库分区,为了使使用者能够充分利用分区数据库的特性,在数据库和表空间之间增加了一层,——数据库分区组。与之相关的名词包括数据库分区,数据库分区组,分区映射,分区键,下面就详细解释一下:数据库分区 首先说一下什么是数据库分区,数据库分区是DB2数据库的一部分,由它自己的数据、索引、配置文件和事务日志组成。分区数据库就是具有两个或多个分区的数据库。这样,表就可以位于一个或多个数据库分区中。与每个数据库分区相关联的处理器都用来满足表请求。数据检索和更新请求将自动分解为子请求,并在适当的数据库分区中并行执行。数据库分区组 数据库分区组是一个或多个数据库分区的集合。想要为数据库创建表时,首先创建用来存储表空间的数据库分区组,然后创建用来存储表的表空间。可以在数据库中定义一个或多个数据库分区组成的命名子集。您定义的每个子集称为 数据库分区组 。包含多个数据库分区的每个子集称为 多分区数据库分区组 。多分区数据库分区组只能使用属于相同实例的数据库分区定义。图1 给出了一个含五个分区的数据库示例,在这个示例中:
以上就是关于linux下怎么查看目录所在的分区全部的内容,包括:linux下怎么查看目录所在的分区、db2 表数据分区 是否可以修改、怎么启动db2数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)