① 数据库管理员的职责主要包括哪些
数据库管理员的主要职责为:
1、数据库管理员规定用户访问权限和为不同用户组分配资源。
2、监视监控数据库的警告日志,定期做备份删除。
3、对数据库的备份策略要根据实际要求进行更改,数据的日常备份情况进行监控。
4、规范数据库用户的管理定期对管理员等重要用户密码进行修改。
5、对SQL语句的书写规范的要求一个SQL语句,如果写得不理想,对数据库的影响是很大的。
技术分工
产品的整个生命周期里数据库管理员的职责重要而广泛,这催生了各个纵向的运维技术方向,凡是关系到数据库质量、效率、成本、安全等方面的工作,及涉及到的技术、组件,主要包括:
1、数据库监控技术:包括监控平台的研发、应用,服务监控准确性、实时性、全面性的保障。
2、数据库故障管理:包括服务的故障预案设计,预案的自动化执行,故障的总结并反馈到产品/系统的设计层面进行优化以提高产品的稳定性。
3、数据库容量管理:测量服务的容量,规划服务的机房建设,扩容、迁移等工作。
4、数据库性能优化:从各个方向,包括SQL优化、参数优化、应用优化、客户端优化等,提高数据库的性能和响应速度,改善用户体验。
② 如何管理服务器上的多个数据库
虽然这将减少托管所有这些数据库的成本,但是,这增加了管理这些系统的复杂性,因为你现在要处理多个服务级协议和维护窗口。 当你决定在同一台服务器上托管多个数据库的时候,你要考虑的第一件事是这些系统是否有互补的维护窗口。如果一个系统不能在夜间放慢速度或者离线,另一个系统不能在白天放慢速度或者离线,这些系统就不适合共享一个服务器,因为你在需要为系统使用补丁或者处于其它原因要让系统离线的时候,你没有有效的维护时间窗。 你需要考察的下一个决定因素是这些系统的服务级协议。需要99%的开机时间的系统能够安排在一起,因为你可能会为这些系统(也许是集群解决方案)建立一个比非重要任务系统更强大的环境。这可以为你节省额外的成本,因为你现在不需要采购任何高端系统。具有更高的服务级协议的系统也可能会有同样的维护时间窗。因此,这些系统在一开始就是互补的。 承担工作量 对托管多个数据库的SQL服务器进行维护的最大难题是时机。 当然,当把多个数据库集中在一个SQL服务器的时候需要考虑的最重要的问题是,是否有足够的CPU和内存资源处理这些客户程序添加到这个数据库服务器的工作量。如果单个服务器不能提供需要的CPU和内存资源,那么,把这些数据库都集中在那台服务器上就不是一个好的选择。 当你经过这个整个决策过程并且把这些数据库都放在同一台服务器上之后,你如何保持这些系统的健康和在高峰期仍能运行?与其它任何数据库解决方案一样,你仍需要处理自己的备份、索引碎片整理和重建、以及为操作系统和SQL服务器使用补丁。 处理托管多个数据库的SQL服务器的维护的最大难题是时机。你需要保证你的维护任务能够在这个SQL服务器托管的全部数据库计划的维护时间窗内完成。在任何数据库的维护时间窗之外进行维护工作都将引起数据库运行缓慢,因为硬盘和CPU资源现在被维护活动占用了,而不是处理正常的数据库查询。 重新索引工作 已经证明是有用的一个技术是比正常运行重新索引指令更频繁地对你的索引进行碎片整理。整理碎片的指令比重新索引指令有更多的好处。第一,索引碎片整理指令是一种在线操作,而重建索引是一种离线工作(除非你运行SQL服务器2005企业版或者更新的版本)。第二,如果你频繁地运行索引碎片整理指令,每一次运行这个指令的时候工作量都比较少。 例如,你每个星期检查一次索引碎片,它显示碎片是70%。这样,你就可以运行一个索引重建指令清除这些索引。 然而,你在第二天再检查索引碎片的时候会发生什么情况呢?它可能是大约8%至10%的碎片。因此,如果你每天运行一个索引碎片整理指令而不是每个星期运行一次索引碎片整理指令,每一天要做的工作就很少,这个工作就能够更快地完成,可能在每天的维护时间窗内完成。 即使你在时间窗内不能让这个系统离线,由于碎片整理操作是一种在线操作,这个系统在整理碎片操作的时间将继续发挥作用,只是反应速度比正常情况下稍微慢一点。 数据库备份 备份是在一台服务器上托管多个数据库的时候需要解决的另一个关键问题。 每一个数据库都有自己的备份要求。备份数据库也许是能够在SQL服务器运行时执行的最繁重的任务。并不是因为这种备份需要占用大量的CPU和内存资源(这个任务占用的资源一般是很低的,除非你在备份的时候对数据库进行压缩),而是因为备份一个大型数据库需要占用大量的硬盘资源。 当进行全面备份的时候,整个数据库必须从硬盘读取。如果你的硬盘系统非常繁忙,这个备份会引起性能严重下降。这种备份的最佳解决方案是选择合适的时机。你还可以寻找能够在备份的同时允许对数据库备份进行压缩的第三方工具。由于这将增加SQL服务器上的CPU的工作量,它通常仅用很少的时间完成备份,因为需要写入备份设备中的数据很少。 结论 只有很少的几种技术能够在一台服务器上运行多个数据库的时候帮助进行数据库服务器的维护。当你考虑数据库整合项目时,希望你能发现这些工具是很有用的。
③ 如何用企业管理器管理数据库
总共有四个步骤:
一. 在本地建立一个SQL Server服务器.
请按下面的图示操作:
1. 打开企业管理器,新建一个SQL SERVER组。如图所示:
参考:http://cache.content.com/c?m=ad02b9&p=&newp=&user=&fm=sc&query=%C8%E7%BA%CE%D3%C3%C6%F3%D2%B5%B9%DC%C0%ED%C6%F7%B9%DC%C0%ED%CA%FD%BE%DD%BF%E2&qid=dd2e608c000057a0&p1=2
④ 如何使用phpmyadmin管理mysql数据库
本地phpmyadmin远程连接服务器端MySQL 首先要确定mysql远程连接已开启,如果没有开启按照下面的二个方法操作:
方法一:改表法
因为在linux环境下,默认是关闭3306端口远程连接的,需要开启,如果装mysql数据库时开启了3306就OK了。
默认mysql帐号不允许从远程登陆,只允许localhost访问。登入mysql后,更改 "mysql" 数据库 里的 "user"(远程数据库的名称) 表里的 "host" 项,把"localhost"改称"%" 。这样mysql就可以远程操作了。
update user set host = '%' where user = 'root';
注意:这样方法只是把本机localhost访问改为了"%"所有地址IP都可以访问mysql服务器,这样很不安全。默认localhost访问的时候有所有操作权限。所以不安全!推荐用第二个方法。
方法二:授权法 (推荐使用)
(1)SQL语句:
grant select,insert,update,delete on *.* to root@"%" Identified by "password";
允许地址IP上root用户,密码dboomysql来连接mysql的所有数据库,只付给select,insert,update,delete权限。 这样比较安全。如果只允许IP(192.168.1.1)上root用户
访问更安全,操作(2)
(2)SQ语句:
grant select,insert,update,delete on *.* to root@"192.168.1.1" Identified by "password";
只允许地址IP(192.168.1.1)上root用户访问更安全了。
(3)
grant all on *.* to root@"192.168.1.1" Identified by "password"
允许地址192.168.1.1上用root用户,密码password来连接mysql的所有数据库,付给所有权限。不太安全。
现在重启mysql服务,如果服务器上安装了防火墙,看看3306端口开启没,如果没需要开启3306端口才能用了,在linux下要开启防火墙 打开3306 端口,编辑这个文件vi /etc/sysconfig/iptables
输入
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存后在控制台输入 /etc/init.d/iptables restart 重启防火墙,记得一定要重启防火墙。
配置好本地PHP环境,下载PHPMYADMIN
方法一:
(一)、下载phpmyadmin
http://www.phpmyadmin.net/home_page/index.php
(二)、修改libraries文件夹下的config.default.php文件或者phpmyadmin根目录的config.inc.php文件。
1、查找$cfg['PmaAbsoluteUri'] ,将其值设置为本地的phpmyadmin路径
2、查找$cfg['Servers'][$i]['host'] , 将其值设置为mysql数据库地址,例如127.0.0.1
3、查找$cfg['Servers'][$i]['user'] , 将其值设置为mysql数据库用户名,例如admin
4、查找$cfg['Servers'][$i]['password'] , 将其值设置为mysql数据库密码,例如admin
(三)、在本地访问phpmyadmin 可查看远程mysql数据库,phpMyAdmin 3.3.1只需要修改 $cfg['Servers'][$i]['host']的值,用户名密码 访问phpmyadmin时输入。
方法二:
1,在浏览器中输入:http://localhost/phpmyadmin/setup/
2,点击“新建服务器” ,填写表单:
服务器名称:主机名称
服务器主机名:主机IP
认证方式:config
config 认证方式的用户名:用户名
config 认证方式的密码:用户密码
3,保存后返回setup界面,点击下载,下载的文件为 config.inc.php
4,将下载的文件 config.inc.php 复制到 /usr/share/phpmyadmin/ 目录下
5,编辑 /usr/share/phpmyadmin/config.inc.php
添加以下代码
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '主机名称';
$cfg['Servers'][$i]['host'] = '主机IP';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = '用户名';
$cfg['Servers'][$i]['password'] = '密码';
⑤ 如何数据库管理的行为规范
通常情况下,有两个方面的标准来判断数据库是否设计的比较规范:一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个基本条件,则说明这个数据库的规范化水平还是比较高的。
当然这两个指标只是最基础的判定条件。为了让数据库更加的规范,需要符合以下五点要求。
要求一:表中应该避免可为空的列。
虽然表中允许空列,但是,空字段是一种比较特殊的数据类型。数据库处理时需要进行特殊的处理。如此的话,就会增加数据库处理记录的复杂性。当表中有比较多的空字段时,在同等条件下,数据库处理的性能会降低许多。
所以,虽然在数据库表设计的时候,允许表中具有空字段,但是,我们应该尽量避免。若确实需要的话,我们可以通过一些折中的方式,来处理这些空字段,让其对数据库性能的影响降低到最少。
一是通过设置默认值的形式,来避免空字段的产生。如在一个人事管理系统中,有时候身份证号码字段可能允许为空。因为不是每个人都可以记住自己的身份证号码。为此,身份证号码字段可以允许为空,以满足这些特殊情况的需要。但是,在数据库设计的时候,则可以做一些处理。如当用户没有输入内容的时候,则把这个字段的默认值设置为0或者为N/A。以避免空字段的产生。
二是若一张表中,允许为空的列比较多,接近表全部列数的三分之一。而且,这些列在大部分情况下,都是可有可无的。若数据库管理员遇到这种情况,笔者建议另外建立一张副表,以保存这些列。然后通过关键字把主表跟这张副表关联起来。将数据存储在两个独立的表中使得主表的设计更为简单,同时也能够满足存储空值信息的需要。
要求二:表不应该有重复的值或者列。
如现在有一个进销存管理系统,这个系统中有一张产品基本信息表中。这个产品开发有时候可以是一个人完成,而有时候又需要多个人合作才能够完成。所以,在产品基本信息表产品开发者这个字段中,有时候可能需要填入多个开发者的名字。
⑥ 如何管理好多个数据库
然而,这样做很快将增加你的数据库解决方案的成本,因为你要对你希望托管的每一个数据库购买一台新的服务器或者新的SQL服务器许可证。
CIO频道每周热"点"文章
每一个实例或者每一个服务器设置一个单一的数据库能够使数据库管理更方便。然而,这样做很快将增加你的数据库解决方案的成本,因为你要对你希望托管的每一个数据库购买一台新的服务器或者新的SQL服务器许可证。
为了应对这种价格昂贵的设置,人们一般在一个服务器或者实例上托管多个数据库(也就是多个应用程序)。虽然这将减少托管所有这些数据库的成本,但是,这增加了管理这些系统的复杂性,因为你现在要处理多个服务级协议和维护窗口。
当你决定在同一台服务器上托管多个数据库的时候,你要考虑的第一件事是这些系统是否有互补的维护窗口。如果一个系统不能在夜间放慢速度或者离线,另一个系统不能在白天放慢速度或者离线,这些系统就不适合共享一个服务器,因为你在需要为系统使用补丁或者处于其它原因要让系统离线的时候,你没有有效的维护时间窗。
你需要考察的下一个决定因素是这些系统的服务级协议。需要99%的开机时间的系统能够安排在一起,因为你可能会为这些系统(也许是集群解决方案)建立一个比非重要任务系统更强大的环境。这可以为你节省额外的成本,因为你现在不需要采购任何高端系统。具有更高的服务级协议的系统也可能会有同样的维护时间窗。因此,这些系统在一开始就是互补的。
承担工作量对托管多个数据库的SQL服务器进行维护的最大难题是时机。
当然,当把多个数据库集中在一个SQL服务器的时候需要考虑的最重要的问题是,是否有足够的CPU和内存资源处理这些客户程序添加到这个数据库服务器的工作量。如果单个服务器不能提供需要的CPU和内存资源,那么,把这些数据库都集中在那台服务器上就不是一个好的选择。
处理托管多个数据库的SQL服务器的维护的最大难题是时机。你需要保证你的维护任务能够在这个SQL服务器托管的全部数据库计划的维护时间窗内完成。在任何数据库的维护时间窗之外进行维护工作都将引起数据库运行缓慢,因为硬盘和CPU资源现在被维护活动占用了,而不是处理正常的数据库查询。
重新索引工作
已经证明是有用的一个技术是比正常运行重新索引指令更频繁地对你的索引进行碎片整理。整理碎片的指令比重新索引指令有更多的好处。第一,索引碎片整理指令是一种在线操作,而重建索引是一种离线工作(除非你运行SQL服务器2005企业版或者更新的版本)。第二,如果你频繁地运行索引碎片整理指令,每一次运行这个指令的时候工作量都比较少。
例如,你每个星期检查一次索引碎片,它显示碎片是70%。这样,你就可以运行一个索引重建指令清除这些索引。
即使你在时间窗内不能让这个系统离线,由于碎片整理操作是一种在线操作,这个系统在整理碎片操作的时间将继续发挥作用,只是反应速度比正常情况下稍微慢一点。
数据库备份备份是在一台服务器上托管多个数据库的时候需要解决的另一个关键问题。
每一个数据库都有自己的备份要求。备份数据库也许是能够在SQL服务器运行时执行的最繁重的任务。并不是因为这种备份需要占用大量的CPU和内存资源(这个任务占用的资源一般是很低的,除非你在备份的时候对数据库进行压缩),而是因为备份一个大型数据库需要占用大量的硬盘资源。
当进行全面备份的时候,整个数据库必须从硬盘读取。如果你的硬盘系统非常繁忙,这个备份会引起性能严重下降。这种备份的最佳解决方案是选择合适的时机。你还可以寻找能够在备份的同时允许对数据库备份进行压缩的第三方工具。由于这将增加SQL服务器上的CPU的工作量,它通常仅用很少的时间完成备份,因为需要写入备份设备中的数据很少。
结论只有很少的几种技术能够在一台服务器上运行多个数据库的时候帮助进行数据库服务器的维护。当你考虑数据库整合项目时,希望你能发现这些工具是很有用的。