问题: 从一个已有的schema 创建一个结构完全相同的schema。
DB2的一个存储过程,可以帮我们实现这样的功能,它就是
SYSPROC.ADMIN_COPY_SCHEMA, 它的定义结构如下:
ADMIN_COPY_SCHEMA(
VARCHAR(128) sourceschema,
VARCHAR(128) targetschema,
VARCHAR(128) copymode,
VARCHAR(128) objectowner,
CLOB(2M) sourcetbsp,
CLOB(2M) targettbsp,
VARCHAR(128) errortabschema,
VARCHAR(128) errortab
);
参数的详细解释:
- sourceschema
要copy的源schema
- targetschema
目标schema, 无需已经存在
- copymode
copy的方式,主要有三种,
DDL, 只拷贝对象的定义
COPY, 对象会在新的schema中创建,然后会load(NONRECOVERABLE MODE)数据到新的schema下的对象中。因此在执行完存储过程后需要做一次备份,否则新表无法访问。
COPYNO, 在新的schema创建,然后load(COPYNO MODE)数据到新的schema
- objectowner
新创建对象的owner, 如果为NULL,那么执行COPY的用户将是owner
- sourcetbsp
用于映射新的表空间,这个参数是以逗号隔开的表空间名。如果为NULL,那么所有新的对象都与原有的对象创建于同一个表空间。
- targettbsp
以逗号隔开的列表,当源对象来自sourcetbsp中的一个表空间是,新的copy对象将会创建在targettbsp列表中相应次序的表空间中。 如果为NULL, 与源对象在同一表空间创建。如果为SYS_ANY, 则会用默认的表空间选择算法来选择表空间。
- errortabschema
这是一个[IN OUT]参数,当有对象不能被成功copy时,需要将这些信息存于一张表中作为日志。 这个参数是log表的schema的名称,在SYSTOOLSPACE表空间中。 如果没有这样的记录,作为OUT,这个参数将返回NULL。
- errortab
[IN OUT]参数,log表的名称。 这个表不能创建或已存在,那么存储过程调用将失败,且返回出错信息。表的具体定义见下图:
Sample:
CALL SYSPROC.ADMIN_COPY_SCHEMA('SOURCE_SCHEMA', 'TARGET_SCHEMA',
'COPY', NULL, 'SOURCETS1 , SOURCETS2', 'TARGETTS1, TARGETTS2,
SYS_ANY', 'ERRORSCHEMA', 'ERRORNAME')
DB2 CALL SYSPROC.ADMIN_COPY_SCHEMA('HUANG','JAY','DDL',NULL,NULL,NULL,'ERRORSCHEMA','ERRORNAME')
Reference:
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/r0022035.htm
- 大小: 53.1 KB
- 大小: 19.3 KB
分享到:
相关推荐
4. **查看表**:`db2 list tables`列出所有用户表,`db2 list tables for system`列出系统表,`db2 list tables for all`列出所有表,`db2 list tables for schema user`列出特定用户的表。 5. **复制表**:`db2 ...
db2 "CREATE SCHEMA <模式名>" db2 "SET SCHEMA <模式名>" ``` 例如,创建并设置名为`PAS`的模式: ```sql db2 "CREATE SCHEMA PAS" db2 "SET SCHEMA PAS" ``` #### 赋予其他用户数据库权限: ```sql db2 "GRANT...
- XML存储:DB2对XML文档的内置支持,包括XML索引和XML Schema。 - NoSQL特性:DB2的BLU Acceleration技术,针对大数据处理提供高性能解决方案。 10. **监控与维护** - 监控工具:学习使用DB2提供的监控工具,如...
- **得到一个表或库的相关脚本**:使用`DB2 EXPORT SCHEMA`命令生成脚本。 - **在对表操作的性能下降后对表做整理**:使用`REORG`命令重新组织表数据。 - **查看语句的执行计划**:使用`EXPLAIN`选项来查看。 - **...
9. **集群与复制**:DB2集群的架构和工作原理,以及数据库复制技术,如Q Replication和Peer-to-Peer Replication,用于实现数据的高可用性和灾难恢复。 10. **XML支持**:DB2对XML数据类型的内置支持,包括XML存储...
- 命令:`#db2 move [dbname] export [-sn [schema]] [-tn [table]]` - 导出数据,可以选择特定模式或表。 29. **导入数据** - 命令:`#db2 move [dbname] import` - 导入数据到数据库。 #### 五、其他管理...
数据移动包括整库移动和表记录移动,可使用复制技术、备份映像或db2move命令。表记录的移动通常结合export和import命令。 【SQL语句】 SQL是操作DB2的主要语言,包括SELECT(用于查询)、DELETE(删除记录)、...
2. **高可用性**:DB2提供了一系列高级特性来确保系统的稳定运行,如故障自动恢复、数据复制和高可用性集群等。 3. **扩展性强**:DB2支持水平和垂直扩展,可以根据业务需求轻松调整系统规模。 4. **安全性**:通过...
- 将抽取的数据文件复制到Windows服务器,然后在目标数据库的db2cmd环境中执行`db2move`命令加载数据:`db2move <target_database> load -u <username> -p <password>`。 7. **创建索引和外键**: - 在目标数据库...
- **将一台机器上的数据库复制到另外一台机器**:可以使用DB2的备份和恢复功能来迁移数据库。 - **在WIN2000下编译本地sp设置**:在Windows 2000环境下,需要正确配置编译本地存储过程所需的环境。 - **启动支持...
在DB2环境中,数据复制是确保多个数据库之间数据同步的重要技术之一。手动全量刷新(Manual Full Refresh)是一种特殊的复制方式,允许管理员通过手工操作来实现源数据库到目标数据库的数据同步。与自动化的全量刷新...
**说明**:这条命令用于查询存储过程的信息,包括存储过程的模式(schema)和名称。 #### 十六、数据类型转换 **命令**: ```sql SELECT CAST(IP AS INTEGER) + 50 FROM LOG_COMM_FAILED; ``` **说明**:这条命令...
- **列出特定用户表**:`db2 list tables for schema [user]` - **复制表**:`db2 create table t1 like t2` - **显示表结构**:`db2 describe table tablename` - **执行SQL查询**:`db2 "select * from table ...
此外,DB2还支持高级特性如在线备份和高可用性复制等,以确保数据的安全性和业务连续性。 通过以上内容的介绍,我们对DB2的基础知识有了更深入的理解。无论是从环境搭建到数据类型的选择,还是从查询语句的编写到...
使用LIKE或AS命令复制表结构时,如果没有正确指定分区键,可能会导致数据分布不均,即节点偏移。 **解决方法:** 1. 明确指定分区键。 2. 重新组织表空间。 #### 十三、系统表systables的常用字段含义 系统表`...
通过 `create schema` 命令可以设置权限,比如 `create schema sch_name authorization sch_passwd;` 创建了一个名为 `sch_name` 的模式,并为其分配了 `sch_passwd` 的权限。 5. **连接数据库**: 使用 `db2 ...
db2 describe indexes for table <schema_name>. ``` - **示例**:描述 `user1.department` 表的索引。 ```sql db2 describe indexes for table user1.department ``` - **说明**:显示表上的索引信息。 ###...