一:目标任务:
使用sql
server
2008自带的维护计划自动备份数据库,并且自动删除超过设定期限的历史备份文件:
1
每天0点自动备份指定数据库
testdb,备份文件放在e:\autoback文件夹下
2
备份文件保留1周,每天备份完数据库后自动删除超过1周的备份文件
二:前提条件
1
已经安装sql
server
integration
services
服务
2
已经安装sql
server
代理
(mssqlserver)
服务
如果未安装sql
server
integration
services
服务,依然可以创建维护计划,但是不会生效
三:
创建维护计划(使用维护计划向导)
1
选择对象资源管理器下的“管理”,点击右键,选择“维护计划向导”
2
选择“下一步”进入“选择计划属性”界面,
我们这里修改计划名称为
testmaintenanceplan
因为我们现在有两个任务,一个是备份数据库testdb,一个是删除历史备份文件。所以选择“整个计划统筹安排或无计划”
3
点击“更改”按钮,进入时间计划设置界面
我们这里需要每天重复执行,频率是每天0点钟执行,从当天开始执行
4
点击“确定”后,返回计划属性界面
5
选择“下一步”,进入选择维护任务界面
我们这里有两个任务,备份数据库和删除超期的历史备份文件,所以勾选“备份数据库(完整)”和“‘清除维护’任务”两个任务
6
选择“下一步”,
进入设置维护任务顺序的界面
这里的顺序是先备份数据库,
再执行“清除维护”任务,删除历史备份
7
选择“下一步”,进入备份数据库任务的设置界面
选择指定的特定数据库testdb:
指定备份文件存放的目录为e:\autoback
备份文件扩展名为bak(默认),bak字母前面不要加点(
)
8
选择“下一步”进入“定义清除维护任务”界面
我们需要删除文件夹(e:\autoback)下面的以bak为扩展名的数据库备份文件,文件保留时间为1周,
这里需要注意的是,
文件扩展名填“bak”而不要填“bak”,扩展名前不要加点,否则不会删除
9
选择“下一步”设置报告文件路径
10
选择“下一步”完成
11
刷新“管理”
下的“维护计划”文件夹,
可以看到创建的维护计划
12
双击新建的维护计划或点击右键选择“修改”,可以看到维护计划的内容,并修改,修改后点击保存即可
13
最后重启sql
server
代理
服务即可
下面要说的是如果将txt文本数据导入到Oracle中
Dos 环境下使用SQlLoader命令 加载
使用其它数据库的数据转移工具
Oracle 企业管理器中的数据加载功能
具体的技术实现
一、Dos 环境下加载
1、首先,服务器端的侦听服务必须已经开启。
测试方法:Dos 下输入
C:/>sqlplus username/password@serviceName
2、然后使用 Oracle 的 sqlldr 命令进行数据的导入
前期条件
1) Oracle 数据库端必须已经建好了需要导入的数据表的结构
2) 一个数据源文件 下面例子中为制表符分隔的文本文件 modeltxt ,为Excel 表中导出的
3) 手工编辑一个XXXCTL 的控制文件
4) 命令行加载数据
如下实例:
以下文件缺省放到C:/ 下,如果不是,就需要指明全路径
1. 命令控制文件 inputctl 内容
命令
说明
load data
1、控制文件标识
infile 'modeltxt'
2、要输入的数据文件名为testtxt
append into table system塔位属性表
3、向表test中追加记录
fields terminated by X'09'
4、指定分隔符,字段终止于X'09',是一个制表符(TAB)
(编号,名称,大小)
5、定义列对应表中顺序
控制文件中指定插入数据的方式关键字
insert,为缺省方式,在数据装载开始时要求表为空
append,在表中追加新记录
replace,删除旧记录,替换成新装载的记录
truncate,同上
在 Dos 窗口下使用 SQlLoader 命令实现数据的导入
C:/>sqlldr userid=system/manager@ serviceName control=inputctl
默认日志文件名为:inputlog
默认坏记录文件为:inputbad
二、使用其它数据库转移工具
以下以SQL Server 导入导出向导为例
1、在数据的导入导出向导中设置数据源服务器,实例中选择数据源选择SQL Server
2、然后指定要导入的Oracle 数据源
3、需要配置Oracle 的属性信息
需要注意的是,登录数据库的用户信息即为数据导入之后的方案名,即导入之后的SQL Server 中的表在Oracle 中标志名为 username表名
以下按照提示即可,可以完全导入SQl Server 中的数据表和视图,也可以使用查询语句返回你要选择的列或者行。
三、Oracle 企业管理器中的数据加载功能
登录Oracle 的控制台界面,针对单独的数据表可以使用数据加载工具
中间需要指定控制文件等,同Dos 加载一致,不再重复
----------------------------------------------------
向Oracle中导入文本数据时使用的控制文件格式
无论是使用上一篇中的哪种方式都需要有一个控制文件,下面是控制文件(ctl文件)书写的基本格式:
命令
说明
load data
1、控制文件标识
infile 'testltxt'
2、要输入的数据文件名为testtxt,此时是要导入的数据文件同控制文件在同一路径下,如果不在同一路径下则需要写完整路径名
append into table 表名(可以是全名也可以是同义词)
3、向表test中追加记录
fields terminated by X'09'
4、指定分隔符,字段终止于X'09',是一个制表符(TAB),如果用逗号分割就将X'09'替换为','
(编号,名称,大小)
5、定义列对应表中顺序
控制文件中指定插入数据的方式关键字
insert,为缺省方式,在数据装载开始时要求表为空
append,在表中追加新记录
replace,删除旧记录,替换成新装载的记录
truncate,同上
控制文件的示例:
load data
infile 'testtxt'
append into table testtest
fields terminated by X'09'
(test,test1,test2)
对有时间类型的数据导入的示例控制文件:
load data
infile 'h:/TB_FACT_PHS_TICKET_DAYtxt'
Append into TABLE TB_FACT_PHS_TICKET_DAY
fields terminated by X'09'
(Time_Id
,Region_Id
,Cust_Type_Id
,Prod_Type_Id
,Acct_Item_Type_Id
,Acct_Item_Type_Cd
,Exchange97_Cd
,Latn_Cd
,Call_Duration
,Access_In_Duration
,Income
,In_Date Date "YYYY-MM-DD"
)
文件导入命令 C:/>sqlldr userid=test/test@test control=testctl(此时控制文件testctl存在C:/路径下)
在命令控制符下进入Oracle C:/>sqlplus username/password@serviceName
oracle导入txt数据文件2008年07月30日 星期三 17:21把txt文件格式的数据文件导入oracle的方法是利用sqlloader工具。
第一步:把文本格式的数据文件放入C盘。如,testtxt
第二步:建立控制文件appendctl。(名字可以随便取,放C盘下)
appendctl的内容如下:
load data --1、控制文件标识
infile 'testtxt' --2、要输入的数据文件名为testtxt
append into table CTXSYStest --3、向CTXSYS表空间中的表test中追加记录
fields terminated by X'09' --4、字段终止于X'09',是一个制表符
(id,username,password,sj) -----定义列对应顺序
其中append为数据装载方式,还有其他选项:
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
第三步:在命令提示符下输入命令。
C:/>sqlldr userid=username/password
control=c:/appendctl 数据库中用名的用户名和密码
或者 C:/>sqlldr userid=system/manager@ serviceName control=inputctl
第二条命令中的system数据库用户名
manager密码
@serviceName 是Oracle中本地配置文件的服务名
----------------------------------------------------
一些经常出现的问题:
1。关于日期格式的问题:
ctl基本写法诸如:
load data
infile 'C:/TP_LOANCONTRACTSUMtxt'
insert into table TP_LOANCONTRACTSUM
fields terminated by '|!'
(
column01,
column02,
column03,
column04 "to_date(:column04,'''yyyy-mm-dd hh24:mi:ss''')",
column05 "to_date(:column05,'''yyyy-mm-dd hh24:mi:ss''')",
column06,
column07,
column08,
column09,
column10,
column11,
column12 "to_date(:column12,'''yyyy-mm-dd hh24:mi:ss''')",
column13
)
2。关于长字符串问题,CTL默认情况下是256位(或者256位左右),所以长字符串时会在log里报错,提示所输入的值超过最大长度,解决办法,在ctl文件里再指定大小,注意个情况,不能写VARCHAR只能写CHAR,否则报错,诸如:
load data
infile 'C:/TP_PLEDGECONTRACTINFOtxt'
insert into table TP_PLEDGECONTRACTINFO
fields terminated by '|!'
(
column01,
column02,
column03,
column04,
column05,
column06,
column07 "to_date(:column07,'''yyyy-mm-dd hh24:mi:ss''')",
column08,
column09,
column10 "to_date(:column10,'''yyyy-mm-dd hh24:mi:ss''')",
column11,
column12,
column13,
column14,
column15 "to_date(:column15,'''yyyy-mm-dd hh24:mi:ss''')",
column16,
column17,
column18 "to_date(:column18,'''yyyy-mm-dd hh24:mi:ss''')",
column19,
column20,
column21,
column22,
column23,
column24,
column25 "to_date(:column25,'''yyyy-mm-dd hh24:mi:ss''')",
column26 CHAR(500),
column27,
column28
)
该方法是通过阿里云控制台的在线迁移MySQL的方法,可以不停服务就能够完成数据库的迁移工作,支持MySQL 51、55(50版本只支持全量迁移)的迁移。
一、在控制台中选择”数据库管理--将自建数据库迁移至RDS”:
二、在数据迁移页面进行迁移,如果是将ECS上的自建数据库迁入请选择“ECS上的自建数据库”进行数据迁移。填写“ECS内网IP”,“数据库连接端口”、“数据库账号” 、“数据库密码”,选择迁移方式后确认迁移
三个库的东西合并到一个库吗,要保证库结构相同,还要保证数据不冲突,比如主外键什么的,具体怎么合并的话方法有很多,最直接的就是INSERT,往一个库里面插数据。
如果只是迁移数据库不需要合并的话,直接在2000上面备份,然后再2008上还原就行了。
以上就是关于sql server 2008 数据库的迁移有哪些方法全部的内容,包括:sql server 2008 数据库的迁移有哪些方法、如何从SQL Server迁移大批量数据到Oracle、如何迁移SQL Server数据库到Amazon RDS实例等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)