欢迎光临
免费的PDF电子书下载网站

SQL Server与Oracle迁移指南 PDF下载

编辑推荐

暂无

内容简介

本书主要对SQL Server与Oracle两种数据库功能间的相互迁移进行对比讲解,向开发人员提供有针对性的参考建议。全书由9章组成,包括安装准备、数据库体系结构、用户及授权、对象迁移、数据迁移、SQL语句迁移(1)和(2)、事务差异及其他功能。每章均采用大量讨论与实例对两种数据库进行翔实比较,有利于开发人员更好地理解迁移过程。

作者简介

梅涛,男,中国电信昆明分公司高级工程师,二级IT支撑经理,长期从事数据库开发工作;2003年获昆明市科学技术进步三等奖;2001年和2004年获云南省科技进步三等奖;2007、2008、2010年获分公司创新先进个人称号;2003、2009、2013年被评为分公司十佳能手;2014年评为电信云南公司IT类D级人材。叶琼伟,男,云南财经大学商学院教授、新加坡国立大学计算机学院访问教授。教育部电子商务类专业教学指导委员会委员、中国信息经济学会互联网经济与跨境电商专业委员会主任、云南省“万人计划”入选人才(教学名师)、云南省高校电子商务类专业教学指导委员会主任。

SQL Server与Oracle迁移指南 PDF下载

目录

第1章 安装准备 1
1.1 服务器硬件及运行环境 1
1.2 版本选择 1
1.2.1 SQL Server的版本选择 1
1.2.2 Oracle的版本选择 2
1.3 安装注意事项 2
1.3.1 SQL Server的安装
注意事项 2
1.3.2 Oracle的安装注意事项 3
1.4 客户端 3
1.4.1 安装 3
1.4.2 图形界面 4
1.5 命令行 4
1.5.1 SQL Server的命令行 4
1.5.2 Oracle的命令行 5
1.6 创建和删除实例 6
1.6.1 SQL Server的创建和
删除实例 6
1.6.2 Oracle的创建和删除实例 6
1.7 卸载 7
1.7.1 SQL Server的卸载 7
1.7.2 Oracle的卸载 7
1.8 参数配置 7
1.9 补丁安装 8
1.9.1 SQL Server的补丁安装 8
1.9.2 Oracle的补丁安装 8
1.10 32位系统内存使用 9
1.11 防火墙对外端口 10
1.11.1 SQL Server的防火墙
对外端口配置 10
1.11.2 Oracle的防火墙对外
端口配置 10
1.12 帮助文件及售后服务 11
1.12.1 SQL Server的帮助
文件及售后服务 11
1.12.2 Oracle的帮助文件
及售后服务 11
1.13 异步I/O和裸设备 11
1.14 数据库的启动和停止 12
1.14.1 SQL Server的启动
和停止 12
1.14.2 Oracle的启动和停止 14
第2章 数据库体系结构 15
2.1 DBMS体系结构图 15
2.2 架构和所有者 16
2.2.1 SQL Server的架构和
所有者 16
2.2.2 Oracle的架构和所有者 20
2.2.3 迁移建议 20
2.3 块(Block)/页(Page) 20
2.3.1 块/页的大小 20
2.3.2 管理可用空间 21
2.3.3 行链接/行溢出 21
2.3.4 行迁移/转接行 22
2.4 区(Extent) 22
2.4.1 区的大小和分布 22
2.4.2 最大读写量 23
2.4.3 对象初始分配的区 23
2.5 段(Segment)/堆(Heap)、
索引(Index) 23
2.5.1 SQL Server堆和索引 23
2.5.2 Oracle段 23
2.6 数据文件 23
2.6.1 文件尺寸 23
2.6.2 自动增长 24
2.6.3 文件收缩/删除/脱机 25
2.6.4 移动物理文件位置 26
2.6.5 系统数据库改目录 27
2.6.6 裸设备 27
2.7 表空间(Table Space)/
文件组(File Group) 28
2.7.1 在表空间/文件组中
创建多个文件 28
2.7.2 Oracle表空间管理方式 28
2.7.3 默认表空间 29
2.7.4 表空间块尺寸 29
2.7.5 数据库收缩 29
2.7.6 删除表空间/文件组 29
2.7.7 只读文件组 31
2.7.8 只读数据库 31
2.7.9 脱机 32
2.7.10 表空间/数据库的传输 32
2.7.11 磁盘I/O压力分布 36
2.8 会话(Session)与进程/线程 37
2.8.1 Oracle会话与进程 37
2.8.2 SQL Server会话与线程 39
2.9 内存管理 43
2.9.1 Oracle的内存管理 43
2.9.2 SQL Server的内存管理 46
2.10 在线日志 49
2.10.1 Oracle的在线日志 49
2.10.2 SQL Server的在线日志 50
第3章 用户及授权 53
3.1 用户和登录名 53
3.1.1 SQL Server的用户和
登录名 53
3.1.2 Oracle的用户 57
3.2 密码策略 59
3.2.1 SQL Server的密码策略 59
3.2.2 Oracle的密码策略 61
3.3 重命名 63
3.3.1 SQL Server的管理员
重命名 63
3.3.2 Windows的管理员重命名 64
3.3.3 修改计算机名 64
3.3.4 Oracle:修改用户名 66
3.4 防止远程登录 66
3.4.1 SQL Server防止远程登录 66
3.4.2 Oracle防止远程登录 67
3.5 限制同一用户的并发登录 68
3.6 最高权限用户 69
3.7 角色及权限 69
3.7.1 相关语法 69
3.7.2 SQL Server中的
预定义角色 70
3.7.3 Oracle中的预定义角色 74
3.7.4 自定义角色 77
3.8 权限管理示例 78
3.8.1 SQL Server架构权限 78
3.8.2 在SQL Server用户中
模拟Oracle用户 78
3.8.3 与其他用户共享一个架构 79
3.8.4 让一个只读用户可以
创建自己的视图 80
3.9 模块授权 80
3.9.1 SQL Server中的模块授权 81
3.9.2 Oracle中的模块授权 82
第4章 对象迁移 84
4.1 表 84
4.1.1 堆表 84
4.1.2 聚集索引表/索引组织表 84
4.1.3 聚簇表(Clustered Table)/
稀疏列(Sparse Columns) 86
4.1.4 计算列/虚拟列 87
4.1.5 外部扩展表(Organization
External)和文件流/表
(FileStream/FileTable) 88
4.1.6 临时表 88
4.1.7 表变量 90
4.1.8 表移动到其他表空间/
文件组 91
4.1.9 表的重建 93
4.1.10 check和default约束 94
4.1.11 删除表 94
4.1.12 按列授权 94
4.2 索引 94
4.2.1 索引名 95
4.2.2 函数索引和计算列 95
4.2.3 索引视图/视图索引 95
4.2.4 聚集索引/索引组织表上的
非聚集索引 95
4.2.5 位图索引和反向索引 96
4.2.6 在线创建索引 96
4.2.7 包含性列(Included
Columns) 96
4.2.8 重建索引,优化性能 96
4.2.9 将索引移动到其他
表空间/文件组 97
4.2.10 筛选索引(Filtered
Index) 98
4.2.11 NULL值处理 99
4.2.12 唯一值索引(Unique
Index) 99
4.2.13 优化索引的使用 100
4.3 分区表 101
4.3.1 Oracle的分区方案 101
4.3.2 Oracle分区表的索引 103
4.3.3 在Oracle中将已有
表转化为分区表 103
4.3.4 在Oracle中访问指定
分区 104
4.3.5 Oracle中的分区维护 104
4.3.6 SQL Server的分区方案 105
4.3.7 SQL Server中分区表的
建立 105
4.3.8 在SQL Server中查看
分区表所有分区对应
的文件组 107
4.3.9 SQL Server分区表的
索引 107
4.3.10 SQL Server中将已有表
转化为分区表 107
4.3.11 在SQL Server中访问
指定分区 108
4.3.12 SQL Server的分区
维护操作 109
4.3.13 滑动窗口方案 111
4.3.14 讨论 113
4.4 存储过程 113
4.4.1 编译 113
4.4.2 授权 113
4.4.3 事务 114
4.4.4 DDL语句 115
4.4.5 在线修改存储过程代码 116
4.4.6 出错处理 116
4.4.7 返回结果集 116
4.4.8 自治事务(Autonomous
Transaction) 117
4.4.9 传输参数及变量定义 119
4.5 函数 119
4.5.1 使用DML语句 119
4.5.2 表值函数 120
4.6 物化视图/索引视图 123
4.6.1 Oracle物化视图 123
4.6.2 SQL Server索引视图 123
4.6.3 视图的刷新 124
4.7 触发器 124
4.7.1 DML触发器 124
4.7.2 语句级触发器 125
4.7.3 行级触发器 127
4.7.4 before/instead of型
触发器 128
4.7.5 DDL触发器 128
4.7.6 数据库事件触发器 129
4.8 同义词 130
4.9 序列/自增长列 130
4.9.1 Oracle序列 130
4.9.2 SQL Server自增长列 131
4.9.3 SQL Server中的序列 132
第5章 数据迁移 135
5.1 字符类型 135
5.1.1 SQL Server和Oracle
字符类型长度的比较 135
5.1.2 varchar 2和varchar 135
5.1.3 字符串的 ' ' 值与NULL 136
5.1.4 本地字符集 136
5.1.5 Unicode编码 139
5.1.6 相关函数 140
5.2 数据类型 140
5.2.1 Oracle中的数据类型 140
5.2.2 SQL Server中的数据
类型 141
5.2.3 迁移建议 142
5.3 日期型 142
5.3.1 日期型的迁移 142
5.3.2 内部存储 143
5.3.3 日期常量 144
5.4 大对象字段 146
5.4.1 SQL Server中的
大对象字段 146
5.4.2 Oracle中的大对象字段 147
5.4.3 大对象字段的迁移 148
5.5 其他特殊类型 148
5.6 对象迁移工具 148
5.6.1 SQL Server的对象
迁移工具 148
5.6.2 Oracle的对象迁移工具 149
5.7 数据迁移工具 150
5.7.1 SQL Server的数据
迁移工具 150
5.7.2 Oracle的数据迁移工具 150
5.8 用户自定义数据类型 150
5.8.1 SQL Server中的自定义
数据类型 150
5.8.2 Oracle中的自定义
数据类型 152
5.9 where条件中数据类型的
隐式转换 155
5.9.1 SQL Server中数据类型的
隐式转换 156

5.9.2 Oracle中数据类型的
隐式转换 157
第6章 SQL语句迁移(1) 158
6.1 SQL语法 158
6.1.1 SQL语句结尾的分号 158
6.1.2 "/"和go 158
6.1.3 标识符和别名 159
6.1.4 单步调试及信息输出 160
6.1.5 赋值 160
6.1.6 多字段匹配/赋值 161
6.1.7 CTE 162
6.1.8 指定使用索引 165
6.1.9 SQL语句的并行处理 165
6.1.10 模块加密 167
6.1.11 获得DML影响行数 168
6.1.12 获得客户端IP地址 168
6.1.13 Oracle伪列 169
6.1.14 仅获取部分输出/分页 172
6.1.15 动态(拼接)SQL 173
6.1.16 参数及绑定 174
6.1.17 修改对象的定义 176
6.2 字符串与函数 177
6.2.1 字符串的比较 177
6.2.2 排序 180
6.2.3 ' ' 值与null值 181
6.2.4 转义字符 182
6.2.5 内置函数迁移 182
6.3 常用语句 185
6.3.1 insert 185
6.3.2 DML同时返回结果集 186
6.3.3 Delete数据后释放
存储空间 188
6.3.4 分批delete大量数据 188
6.3.5 多表关联 190
6.3.6 删除表中所有行
(truncate table) 192
6.3.7 层次查询子句
(connect by) 193
6.3.8 合并(merge) 197
6.3.9 分组统计 198
6.3.10 透视和逆透视 200
6.3.11 批加载(bulk load) 202
第7章 SQL语句迁移(2) 203
7.1 编程 203
7.1.1 If语句 203
7.1.2 循环语句 203
7.1.3 游标 204
7.1.4 出错处理和抛出异常 206
7.1.5 程序包/程序集 208
7.1.6 与其他开发语言的集成 209
7.1.7 自定义聚合函数 217
7.1.

前沿

前 ; ; ; 言
SQL Server与Oracle是世界上商业数据库市场占有率较高的两种通用型数据库。其中,Oracle多年来是数据库业界的领军产品,在高端应用上有较大的占有率;而SQL Server在中低端应用上有较大的占有率。同时,通常Oracle给人以性能高、维护难度大的印象。长期以来,当面对大数据量的性能要求时,或者要求跨平台的部署能力时,都会将应用迁移到Oracle数据库上。并且一些行业和企业对Oracle也有着深厚的技术积累,也会要求将应用迁移到Oracle上。
近年来,虽然Oracle在数据库维护上进行了很多简化,但是SQL Server在功能和性能上却有了更长足的进步。事务处理性能委员会(Transaction Processing Performance Council,www.tpc.org)的TPC-E(针对OLTP)和TPC-H(针对OLAP)的排名上,SQL Server在性能上的优势与Oracle形成强烈反差,这表明Oracle在性能上也已经不像过去高高在上了。
随着PC服务器相对小型机在性能上也有较大改善,以及硬件成本的降低,凸显了Oracle数据库的拥有成本过高,特别是维护成本以及对维护人员的要求较高,甚至在安全性上也乏善可陈。为降低成本,一些企业出现了去IOE(IBM、Oracle、EMC)的趋势,出现了越来越多从Oracle数据库向其他数据库进行迁移的需求。
同时,在软件的产品化开发中,也更多地出现不同的数据库,以满足不同客户的需求。数据库开发人员也面临着多种数据库之间的转换和迁移工作。
作为常见的两种商业数据库,SQL Server与Oracle的底层原理是相同的,在基本功能上是一致的,都有着大致对应的实现方案,实施迁移的可行性是较高的。但是两种数据库在系统结构和功能实现上有巨大的差异,使得学习过程和迁移过程较为复杂。本书按照迁移时面临的问题和实际迁移工作的步骤出发,逐步向读者展示相关内容。通过本书,读者可以处理好迁移时大部分需要考虑的相关细节,提高迁移的速度和成功率。
本书第 1 章首先从安装开始进行介绍,让读者对两种数据库的运行环境有一个粗略的认识。
第2章着重介绍两者体系架构的异同点。两种数据库的主要构成大体上可以对应,主要是名称上的不一致。不同点主要在于SQL Server是多库结构,架构、用户、登录名相分离。
第3章进一步介绍不同体系架构下用户和授权的差异及迁移建议,演示了SQL Server架构、用户分离为授权带来的灵活性,以及两种数据库在模块授权的不同之处,为迁移做好事前规划和准备工作。
从第4章开始正式进入迁移的实际工作,从对象迁移开始,到第5章的数据迁移。这部分工作可能由一些迁移工具辅助完成。
迁移工作最为烦琐的部分介绍在第6、7章,就是修改应用中的SQL语句。很多功能在TSQL和PLSQL实现的差异较大,需要有不同的方法来解决。
第8章主要考虑相关的事务差异,这部分工作也是今后数据库调优的基础。
最后一章即第9章介绍两种数据库常用扩展功能的迁移建议。这部分功能差异较大,必须重新开发和部署,涉及的范围太大,本书仅做简要介绍。
本书中table统一译为表,schema统一译为架构。文中SQL Server特指Microsoft SQL Server而不是Sybase SQL Server。SSMS为Microsoft SQL Server Management Studio的缩写,OEM为Oracle Enterprise Manager的缩写。如果命令行前有“OS>”的,表示此句是在操作系统的命令行shell下执行的,而不是在SQL环境中执行的。在SQL语句中,由“< >”界定的字符是需要根据实际情况进行替换的。本书中出现的SQL Server用户特指数据库用户,而非实例登录名。本书以SQL Server 2012和Oracle 11g R2为叙述主线,涉及最新的SQL server 2016 SP1和Oracle 12c的一些功能,早期版本也会有一定的涉及。
读者阅读本书前,需要对其中一种数据库有所了解。本书主要针对数据库开发人员,而非DBA(Database Administrator,数据库管理员),仅对迁移过程中出现的常见问题进行对比说明,而其他问题仅做简要介绍。
本书得到国家自然科学基金(71402159、71672013)、云南省应用基础研究计划重点项目(2017FA034)、云南省中青年学术和技术带头人后备人才培养项目(2018HB027)、2018年昆明市电子商务与互联网金融重点实验室项目(2017-1A-14684昆高发〔2018〕18号)、教育部产学合作协同育人项目(教高司函〔2017〕1号)、云科云财电商众创空间项目(2017DS012)、云南省电子商务创新与创业重点实验室(云教科2014[16])、云南省电子商务实验教学示范中心(2015年高水平大学实践教学能力提升工程项目)(云教高2015)的资助。在此一并表示衷心的感谢。
本书由笔者在近年来实际工作中获得的经验汇编而成,笔者尽最大的努力将这些经验与读者分享。鉴于水平有限,书中可能存在一些错误,欢迎广大读者朋友批评指正。

 ;著 ; 者

SQL Server与Oracle迁移指南 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:SQL Server与Oracle迁移指南