db2中的schema如何重命名?

db2中的schema如何重命名?,第1张

重命名schema ,相当于要重建schema,然后做表迁移。

具体步骤:参考下面的link

网页链接

1) Issue "db2look -d <DBNAME>-e -o <outputfile.sql>"

2) In the outputfile.sql file, find and change the schema to your new schema name. You can use UNIX text editor Vi and edit the file by use the following command ":1,$s/<SEARCH>/<REPLACE>/g" to search and replace or use any text editor that you desire.

3) Issue "db2move <dbname>export". This will create several files, including a db2move.lst file, in your current directory.

4) You will also need to edit the generated db2move.lst file and change the schema names to the new desired name.

5) Drop existing user tables (this step is for renaming the schema within the same database)

6) Issue "db2 -tvf outputfile.sql" (this runs the output file generated by the db2look command to recreate the tables with the new schema name)

7) Issue "db2move <dbname>import" (to import the data into the tables.)

被取消的命令MySQL 之前提供了一个 rename database db_old to db_new 的命令来直接数据库改名,可能由于实现的功能不完备(比如,这条命令可能是一个超大的事务,或者是由于之前的表很多还是 MyISAM 等),后来的版本直接取消了这条命令。更改数据库名大致上有以下几种方案:

一、mysqldump 导入导出要说最简单的方法,就是直接用 mysqldump 工具,在旧库导出再往新库导入(最原始、最慢、最容易想到)的方法:旧库 yttdb_old 导出(包含的对象:表、视图、触发器、事件、存储过程、存储函数)

二、改整库的表名利用 MySQL 更改表名的方法来批量把旧库的所有表依次遍历,改名为新库的表。这种方法比第一种要快很多倍,但是没有第一步 *** 作起来那么顺滑,不能一步到位。比如,要把数据库 yttdb_old 改名为 yttdb_new,如果数据库 yttdb_old 里只有磁盘表,那很简单,直接改名即可。或者写个脚本来批量改,非常简单。但是一般旧库里不只有磁盘表,还包含其他各种对象。这时候可以先考虑把旧库的各种对象导出来,完了在逐一改完表名后导进去。

三、历史方案其实在 MySQL 早期还有一种方法。假设 MySQL 部署好了后,所有的 binlog 都有备份,并且二进制日志格式还是 statement 的话,那就可以简单搭建一台从机,让它慢慢追主机到新的库名,等确切要更改旧库的时候,再直接晋升从机为主机即可。这里只需要从机配置一个参数来把旧库指向为新库:replicate-rewrite-db=yttdb_old->yttdb_new不过这种局限性很大,不具备标准化,不推荐。

总结其实针对 MySQL 本身改库名,大致就这么几种方法:

如果数据量小,推荐第一种;

数据量大,则推荐第二种;

数据量巨大,那就非 MySQL 本身能解决的了。

可通过部署第三方 ETL 工具,通过解析 MySQL 二进制日志或其他的方式来把旧库数据直接读取到新库达到改名的目的等等。

db2 "RESTORE DATABASE 备份数据库名称 FROM 'D:\备份文件路径' TAKEN AT 备份时间 TO D: INTO 新数据库名称 REDIRECT generate script res.sql"

然后执行res.sql(注意修改文档中的表空间路径)

注:db2 9.1以下好像此命令有问题


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

原文地址: http://outofmemory.cn/sjk/9881181.html

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

发表评论

登录后才能评论

评论列表(0条)

保存