苍天有泪 发表于 2016-11-16 02:46:38

更改DB2实例的fence用户的两种方法

碰到有个DB2的实例居然实例用户和fence用户是一样的
做了个测试,尝试更改fence用户
注意!无论使用哪个方法,都应该全面的备份数据库以及其参数设置。篇幅原因,这些以下没有列出。
鉴于第一个方法在db2idrop的时候会删除sqllib下面的某些文件,具有一定风险
所以推荐第二种方法,风险较小
###方法一:
思路:
1.使用db2cfexp导出实例配置
2.停止实例
3.删除实例
4.使用新的fence用户建立实例
5.使用db2cfimp导入原有实例配置
6.启动新的实例
参考:
https://www-304.ibm.com/support/docview.wss?uid=swg21267506

--建立instance,instance用户和fence用户一样
# /opt/ibm/db2/V9.7/instance/db2icrt -u db2inst4 db2inst4
DBI1070IProgram db2icrt completed successfully.
# su - db2inst4
$ db2ilist
db2inst4
db2inst3
--查看fence用户
$ db2pd -fmp |grep -i fen |grep -i user
Fenced User:   db2inst4
--开始更改
--1.使用db2cfexp导出实例配置
$ db2cfexp cfexp.txt backup
--建立测试数据
$ db2 "insert into t1 values (1)"
DB20000IThe SQL command completed successfully.
$ db2 "insert into t1 values (2)"
DB20000IThe SQL command completed successfully.
$ db2 "insert into t1 values (3)"
DB20000IThe SQL command completed successfully.
$ db2 commit
DB20000IThe SQL command completed successfully.
$ db2 "select * from t1"
C1         
-----------
1
2
3
3 record(s) selected.
--2.停止实例
$ db2stop
SQL1025NThe database manager was not stopped because databases are still active.
--3.删除实例
# /opt/ibm/db2/V9.7/instance/db2idrop db2inst4
DBI1070IProgram db2idrop completed successfully.
# /opt/ibm/db2/V9.7/instance/db2ilist
db2inst3
--实例已经没有了
--4.使用新的fence用户建立实例
# /opt/ibm/db2/V9.7/instance/db2icrt -u db2fenc1 db2inst4
DBI1070IProgram db2icrt completed successfully.
# su - db2inst4
$ db2ilist
db2inst4
db2inst3
--5.使用db2cfimp导入原有实例配置
$ db2cfimp cfexp.txt
--6.启动新的实例
$ db2start
SQL1063NDB2START processing was successful.
--测试一下原有数据
$ db2 "select * from t1"
C1         
-----------
1
2
3
3 record(s) selected.
--查看新的fence用户
$ db2pd -fmp |grep -i fen
Trusted Path:    /home/db2inst4/sqllib/function/unfenced
Fenced User:   db2fenc1
$ more ~/sqllib/ctrl/.fencedID
db2fenc1
--ok


###方法二:
1.停止数据库
2.使用db2iupdt更新
3.db2updv9 ——如有需要
4.启动实例

--接着之前的实例,继续做。尝试把fence用户重新设置成db2inst3
$ db2pd -fmp |grep -i fen
Trusted Path:    /home/db2inst4/sqllib/function/unfenced
Fenced User:   db2fenc1
$ more ~db2inst1/sqllib/ctrl/.fencedID
/home/db2inst1/sqllib/ctrl/.fencedID: No such file or directory
$ more ~/sqllib/ctrl/.fencedID
db2fenc1
--1.停止数据库
$ db2stop
SQL1064NDB2STOP processing was successful.
--2.使用db2iupdt更新
# /opt/ibm/db2/V9.7/instance/db2iupdt -u db2inst3 db2inst4
/opt/ibm/db2/V9.7/instance/db2iutil: line 6163: chgowngrp: command not found
DBI1070IProgram db2iupdt completed successfully.
--4.启动实例
$ db2start
SQL1063NDB2START processing was successful.
--检查一下新的fence用户
$ db2pd -fmp | grep -i fen
Trusted Path:    /home/db2inst4/sqllib/function/unfenced
Fenced User:   db2inst3
$ cat sqllib/ctrl/.fencedID
db2inst3
--成为新的fence用户了
--检查测试数据
$ db2 "select * from t1"
C1         
-----------
1
2
3
3 record(s) selected.
--ok
页: [1]
查看完整版本: 更改DB2实例的fence用户的两种方法