shell脚本执行db2 *** 作不连续

shell脚本执行db2 *** 作不连续,第1张

具体解决方法为:
方法一、适合所有格式的mysql数据库,通过对数据库导出导进写个脚本定时执行:
1导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -psmgp_apps_wcnc > /存放路径/wcncsql
2导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> /存放路径/wcnc_userssql
3导出一个数据库结构 mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路径/wcnc_dbsql

使用db2look和db2move工具。
1首先利用db2look
-d
数据库名称
-e
-a
-l
-o
文件名sql
导出数据库建库脚本
2再利用db2move
数据库名称
export
导出数据库。
在到windows *** 作系统上
3建库
4修改并执行1中的脚本创建数据库中的对象。
5使用db2move
数据库名称
load
导入上面导出的数据。

一、安装前准备工作:

1、对于Linux系统,至ibm网站下载软件包

2、Linux内核设置:编辑/etc/sysctlconf文件

3、创建相应用户以及组:

4、创建相应目录用于存放db2的数据文件以及日志文件:

这里在根下面创建一个db2总目录,然后创建了一个15G大小的逻辑卷挂载/db2下面,然后在其下面创建相应的文件夹。

database目录存放数据库实例

db2log1存放db2的主日志文件

db2log2存放镜像日志文件

db2temp存放db2临时表空间

db2用户的家目录的位置

二、安装过程:

安装可以使用root用户安装也可以使用非root用户安装,这里就直接使用root用户安装了。

以root身份执行db2setup,会d出以下画面:

这里选择安装企业版,点击installnew:

下一步之后,就出现创建用户的画面:

最后点击finish开始安装过程。

三、创建数据库:

如果在安装过程中,没有创建数据库,则后续可以使用db2命令创建数据库。这是一个基于图形界面的管理工具,使用起来也非常方便。执行db2后,会d出以下画面:

点击右侧的CreateNewDatabase,创建数据库:

指定数据库名称以及存放位置,选中LetDB2managemystorage,下一步:

点击finish开始创建。默认db2会创建以下三个表空间:

(1)、catalogtablespace用于存放catalog表。

(2)、usertablespace存放所有表和索引数据。

(3)、temporarytablespace临时数据的存放位置。

创建完成后,会看到如下画面:

此时还没有连接到xzxjdb1上,点击右侧的connect进行连接。连接之后,会看到右侧多了好多信息:

使用命令行查看当前数据库中表空间信息:

四、DB2的简单管理:

1、查看表空间信息:

2、查看表信息:

3、查看当前实例下的所有数据库信息:

4、停止数据库:

5、启动数据库:

6、设置实例自动启动:

存储过程啊,给你个简单的例子
CREATE PROCEDURE SPCARDTRACE
(
IN I_CARDNO VARCHAR(10)
)
-- 存储过程功能 :
-- 创建人:
-- 创建日期:
-- 参数说明:
-- 01 : I_CARDNO 卡号
-- 02 :
-- 03 :
LANGUAGE SQL
SPECIFIC SPCARDTRACE
DYNAMIC RESULT SETS 1
MODIFIES SQL DATA
BEGIN
DECLARE V_CARDNO VARCHAR(10); --卡号
DECLARE V_EMPNAME VARCHAR(16); --持卡人
DECLARE V_CARDBALANCE DECIMAL(8,2); --卡余额
DECLARE V_HAPPENDATE INT;--统计时间
DECLARE V_MINTIME TIMESTAMP; --最小时间
DECLARE V_MAXTIME TIMESTAMP; --最大时间
DECLARE V_MINMONTH INT ;
DECLARE V_MAXMONTH INT ;
DECLARE V_ISSUECARDDATE TIMESTAMP; --发卡时间
DECLARE V_SUBSIDYMONEY DECIMAL(8,2);--补贴金额
DECLARE V_CONSUMEMONEY DECIMAL(8,2);--冲值金额
DECLARE V_PUTMONEY DECIMAL(8,2);--冲值金额
DECLARE V_OUTMONEY DECIMAL(8,2);--退款金额
DECLARE V_CHANGEMONEY DECIMAL(8,2);--改卡差额
DECLARE V_STRSQL VARCHAR(1000); --SQL
DECLARE CS CURSOR WITH RETURN TO CALLER FOR RETURNTABLE;

INSERT INTO TBCARDTRACE ( CARDNO,EMPNAME,CARDBALANCE,ISSUECARDDATE ,HAPPENDATE,
SUBSIDYMONEY,PUTMONEY,OUTMONEY ,CONSUMEMONEY,CHANGEMONEY )
VALUES (V_CARDNO,V_EMPNAME,V_CARDBALANCE,V_ISSUECARDDATE,V_HAPPENDATE,
V_SUBSIDYMONEY,V_PUTMONEY,V_OUTMONEY,V_CONSUMEMONEY,V_CHANGEMONEY);
END

1、db2
create
database
数据库名
<--
创建数据库
2、db2
connect
to
数据库名
user
用户名
using
用户密码
<--
连接数据库
3、db2
-tvf
otpdb_v3_db2sql
<--
为新建数据库建立表结构
4、db2
-td@
-f
存储过程文件绝对路径
<--
导入存储过程,无错误会提示成功
4、调用存储过程:
Windows
下:db2
call
存储过程名(参数1,参数2)
AIX
下:db2
<--
要先进入DB2,方可调用存储过程或执行SQL语句
db2=>call
存储过程名(参数1,参数2)
5、验证插入数据是否成功
Windows
下:db2
select
count()
from
FTOTP_USERINFO
AIX
下:db2
<--
要先进入DB2,方可调用存储过程或执行SQL语句
db2=>select
count()
from
FTOTP_USERINFO
Windows
下:db2
select
count()
from
FTOTP_TOKENINFO
AIX
下:db2
<--
要先进入DB2,方可调用存储过程或执行SQL语句
db2=>select
count()
from
FTOTP_TOKENINFO
6、db2
SELECT
TOKEN,
PUBKEY
FROM
FTOTP_TOKENINFO
FETCH
FIRST
10000
ROWS
ONLY
>
要保存文件的绝对全路径
<--

DB2
中导出前一万条记录
windows
-
eg
db2
SELECT
TOKEN,
PUBKEY
FROM
FTOTP_TOKENINFO
FETCH
FIRST
10000
ROWS
ONLY
>
c:\abctxt
AIX
-
eg
db2
SELECT
TOKEN,
PUBKEY
FROM
FTOTP_TOKENINFO
FETCH
FIRST
10000
ROWS
ONLY
>
c:\abctxt
<--
注意:不能先进入DB2,执行查询与导出命令组合
7、db2
drop
procedure
存储过程名
<--
删除存储过程
8、db2
drop
database
数据库名
<--
删除指定名称的数据库
注,如果删除时提示有应用程序连接到这个数据库上,可以用如下命令断开所有应用程序的连接:
db2
force
application
all
<--
断开所有应用程序的连接


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13339811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-17
下一篇 2023-07-17

发表评论

登录后才能评论

评论列表(0条)

保存