在SQL中什么时候使用CHECK约束?
问:我如何建立一个约束来防止2007年1月1日之前的数据进入数据库?
答:使用CHECK约束是一个明智的选择。下面是一个例子:
create table documents ( id integer not null primary key , title varchar(99) not null , added date not null , constraint only_new_ones check ( added >= '2007-01-01' ) ); |
什么时候使用手动升级,什么时候使用输入输出方法升级?
问:我准备升级。我的数据库大小是200GB的,并且它是一个不能升级到10g的( 8.1.6.2到10g的)的版本 。它的操作系统是HP - UX操作系统,所以你能告诉我是否最佳升级方法是按照手动升级过程还是使用输入输出过程升级到新版本的Oracle数据库?如果我按照手动的方法然后我必须安装8i数据库补丁然后升级到10g。如果我按照输入/输出方法那么我需要更多的停机时间。我应该遵循那些过程?
答:如果你执行手动升级过程,那么你将至少是8.1.7以前的版本才能进行,然后才可以开始。所以,从8.1.6.2到10g,这个过程你将需要进行两次升级。如果你使用输入/输出方法,那么你将只需要进行一次升级。平均而言,每次手动升级将需要大约1个小时,但这一时间可以有所不同。因此,没有很好的了解你的环境,该手动升级过程将需要约2个小时的停机时间。利用输入/输出方法为200GB的数据库升级,可能会需要更长的时间。因此,在这里最大的问题是有多少停机时间可以用来此次升级?如果你有更大的停机时间空间,那么你可以使用输入/输出方法进行升级。该输入/输出方法,还可以让你进行像移动一些对象到新的表空间的重组。
数据库工程师,数据库架构师和数据库管理员三者之间的差别?
问:你能否解释数据库工程师,数据库架构师和数据库管理员三者之间的差别?
答:很好的一个问题!它可能是想标题一样令人费解(还有更多,包括数据库开发,数据架构师,数据分析,数据模型,数据库设计等),使用不当,或被一些使用他们的公司重新定义。这个定义确实取决于实际的职务说明。我会尽我所能,但区别并简化为你...
如何存档和废弃一个数据库?
问:什么是最好的方式存档和废弃一个5GB甲骨文7.3版本的数据库?这些数据,监管机构要求必须在未来20年内都可查,我们都害怕在今后我们将无法将其恢复到较新版本的数据库。
答:我使用Oracle的export的功能来处理这种类型的任务。你的数据库不是过于庞大,那么该功能可行。关于EXP功能的优点是,未来版本的甲骨文数据库仍然能够阅读所产生的转储文件。因此,执行下列工作:
exp userid=system/manager file=my_db.dmp log=my_db.log full=y
由此产生的文件就可以写入DVD或其他一些媒体进行长期的存储。