肯定是需要维护的,而且要根据网站的运营情况和公司的实际需求进行维护和优化。网站数据库的维护工作的内容如下:
确定网站程序、数据库类型
日常备份
*** 作维护备份
*** 作修改过程
一、网站基础维护
1、内容更新2、修改3、简单Flash修改4、简单Js效果
二、网站安全维护
1、病毒的防治
三、网站数据库维护
1、数据库备份2、数据库导入导出3、数据库的迁移4、数据库数据的恢复和还原5、数据库后台维护
四、故障恢复
1、数据库数据丢失找回
2、网站程序恢复
五、基础优化
1、进行w3c标准优化
一、确定网站程序类型和数据库类型,并取得一下信息
1、取得FTP账号信息,2、如果是大型数据库(例如sqlserver和mysql等),要取得数据库账号信息3、
域名管理信息
二、原始备份在取得网站信息后要对网站进行原始备份,包括数据库数据和网站程序,以下为备份过程:
i以汉语拼音或者英文的第一个字母为文件夹名称,对网站进行分类,便于查找
ii每个文件夹内再建立2-3个文件夹,分别存放,网站原始备份,修改备份,数据库文件以及备份(如果是aess数据库可以和程序放在同一个文件夹内,备份文件以文件名加日期命名)
三、网站修改
1、每次修改从ftp下载最新的文件进行修改,上传之前,需要在ftp备份原文件,以文件名加日期来命名,例如(indexasp命名为indexasp1022),并及时更新原始备份
2、如果是从网站后台直接拷贝的代码模板进行修改,需要将原模板代码备份到本地文件夹,再将修改好的代码上传。
四、定期备份
1、程序文件每月一号进行一次备份,可采用覆盖原始备份的方式进行备份,如果有重要更新,随时进行一次单独备份,同时保留旧备份,数量为2
2、数据库文件
1)aess数据库可以通过手动的方式每周五备份一次,如果客户要求可以备份。备份保留数量为5份
2)大型数据库,例如sqlserver和mysql,每周五通过服务器控制面板备份,客户要求可以备份。并在本地电脑上通过数据导入导出每15天备份一次,不需要保留旧数据。
3)如果是独享主机可以通过软件在服务器是自动差异备份,设定时间为每周五备份。并在本地电脑上通过数据导入导出每15天备份一次,不需要保留旧数据。
4)若进行数据库结构修改 *** 作,需要对数据库进行完全备份。
网络数据库的重要性
数据库作为应用系统基础的组成部分,其重要性不言而喻。数据库一旦崩溃,将会给企业带来巨大的压力,面临的业务需求与挑战。随着IT技术的发展,企业的应用系统越来越复杂,数据库作为应用系统基础的组成部分,其重要性不言而喻。对于企业而言,一旦数据库崩溃或者数据库的性能降低,那么会直接导致依赖于数据库的应用系统运行速度缓慢或者根本无法使用,其最终结果不仅仅是会影响应用系统的使用效率,甚至会造成企业客户和利润的流失。更有甚者,对于某些企业来说,其日常的运营完全依赖于业务系统,那么一旦业务系统所使用的数据库崩溃,那么会对企业造成根本性的伤害,或者会影响到企业的正常运营。我们为客户带来什么提高管理员的工作效率,改善企业的数据库使用环境
数据库在使用中所出现的问题,可能由表空间、文件系统、数据文件、进程等组件当中的任意一个造成,甚至有可能是由于某一个SQL语句的性能太差造成。因此,当数据库出现问题,彻查问题的根本原因成为重复、繁杂的劳动,MochaBSM将管理员从重复劳动中脱离出来,以主动管理的方式,为管理员提供自动化的监控管理,一旦数据库出现问题,可以马上通知相关的管理员。提前识别可能伤害数据库性能的事件,并采取预防性措施,减少应用停用为企业带来的伤害系统提供了70多个重要的性能指标,一旦性能出现问题,立刻产生相应的事件和报警,并可通过短信、语音等形式主动将事件和报警推送给管理员,让管理员能够实时了解当前的系统运行数据与运行状况,及时解决数据库所存在的问题,防止问题进一步的严重。
监控颗粒度细化,为管理员提供更详尽的信息,便于管理员有依据的优化数据库性能除了监控数据库、表空间、数据文件等组件,系统还可以深入到SQL语句的监控,提供SQL语句排名,可检测性能欠佳的SQL语句,让管理员能够有依据、有针对性的优化数据库的性能,简化管理员的维护工作。
数据库可视化监控,一目了然,降低技术门槛
除了提供详尽、实时的数据,系统还可提供给使用者可视化的监控方式,使用者不必具有专业的数据库知识,也可以了解到数据库的当前状况。
保障业务不间断和连续性,降低运行风险
通过对数据库可用性和性能的监控,保证数据库的健康运行,确保依赖于数据库的业务系统的正常运
行,减少系统的停用时间。
关键功能与亮点
支持主流的数据库,包括
·MSSQLServer2000、2005
·OracleDB9i、10g
·MySQL
·DB2
自动发现被监控的数据库,并且可自动发现数据库上的数据库表和表空间,然后进行监控。
对以下关键组件进行针对性的监控
·数据库
从CPU、内存、连接、锁、事务等方面来监控数据库的性能。
·表空间
数据文件
进程
*** 作系统的文件系统
除了数据展现,更提供可视化的监控方式,可以对文件系统运行情况进行查看和检索。
提供数据库配置的监控,当数据库的配置发生变更,例如数据库内存配置方面的变更等,以不同的颜
色标记配置变更记录,并且系统可第一时间通知管理员所发生的变更。
监控粒度更加细化,提供对于SQL语句的排序,可查看性能较差的SQL语句,为管理员优化数据库提供依据,能够预防更严重问题的发生。
关于数据库的运行数据,系统提供了丰富的报表、报告,并可导出各种文件形式,应用于其他文档。
应用可视化管理,可直观的展现给用户数据库监控的各种数据,让用户对于应用运行的情况有更清晰、直接的感受。
整合ITM、Smarts等第三方软件,便于用户通过一个Portal,了解到全局的信息。
提供宕机的根本原因分析,帮助管理员更快解决问题,使最终用户得到更高品质的应用服务。
一旦系统发生故障,系统生成事件,通过短信,邮件和语音等方式通知关键管理人员。
保护敏感信息和数据资产大多数企业、组织以及政府部门的电子数据都保存在各种数据库中。他们用这些数据库保存一些个人资料,比如员工薪水、医疗记录、员工个人资料等等。数据库服务器还掌握着敏感的金融数据,包括交易记录、商业事务和帐号数据、战略上的或者专业的信息,比如专利和工程数据,甚至市场计划等等应该保护起来防止竞争者和其他非法者获取的资料。数据库服务器还保存着一些有关员工详细资料的东西比如银行帐号、xyk号码,以及一些商业伙伴的资料。
一般数据库有mySQLmsSQLa但修改网页版面一般不在数据库在网站后台或者是在源码修改过程需要ftp工具
网站建设--需要网站维护-网页修改-网站故障处理--asp,php---程序错误---数据库维护--
建网站---做网站---模版---网店的过来-----专职程序员QQ
I 硬件配置优化
CPU选择:多核的CPU,主频高的CPU
内存:更大的内存
磁盘选择:更快的转速、RAID、阵列卡,
网络环境选择:尽量部署在局域网、SCI、光缆、千兆网、双网线提供冗余、0000多端口绑定监听
II *** 作系统级优化
使用64位的 *** 作系统,更好的使用大内存。
设置noatime,nodiratime
[zhangxy@dowload_server1 ~]$ cat /etc/fstab
LABEL=/ / ext3 defaults,noatime,nodiratime 1 1
/dev/sda5 /data xfs defaults,noatime,nodiratime 1 2
优化内核参数
netipv4tcp_keepalive_time=7200
netipv4tcp_max_syn_backlog=1024
netipv4tcp_syncookies=1
netipv4tcp_tw_reuse = 1
netipv4tcp_tw_recycle = 1
netipv4neighdefaultgc_thresh3 = 2048
netipv4neighdefaultgc_thresh2 = 1024
netipv4neighdefaultgc_thresh1 = 256
netipv4confdefaultrp_filter = 1
netipv4confdefaultforwarding = 1
netipv4confdefaultproxy_arp = 0
netipv4tcp_syncookies = 1
netcorenetdev_max_backlog = 2048
netcoredev_weight = 64
netipv4tcp_rmem = 4096 87380 16777216
netipv4tcp_wmem = 4096 65536 16777216
netipv4tcp_rfc1337 = 1
netipv4tcp_sack = 0
netipv4tcp_fin_timeout = 20
netipv4tcp_keepalive_probes = 5
netipv4tcp_max_orphans = 32768
netcoreoptmem_max = 20480
netcorermem_default = 16777216
netcorermem_max = 16777216
netcorewmem_default = 16777216
netcorewmem_max = 16777216
netcoresomaxconn = 500
netipv4tcp_orphan_retries = 1
netipv4tcp_max_tw_buckets = 18000
netipv4ip_forward = 0
netipv4confdefaultproxy_arp = 0
netipv4confallrp_filter = 1
kernelsysrq = 1
netipv4confdefaultsend_redirects = 1
netipv4confallsend_redirects = 0
netipv4ip_local_port_range = 5000 65000
kernelshmmax = 167108864
vmswappiness=0
加大文件描述符限制
Vim /etc/security/limitsconf
加上
soft nofile 65535
hard nofile 65535
文件系统选择 xfs
/dev/sda5 /data xfs defaults,noatime,nodiratime 1 2
III Mysql设计优化
III1存储引擎的选择
Myisam:数据库并发不大,读多写少,而且都能很好的用到索引,sql语句比较简单的应用,TB数据仓库
Innodb:并发访问大,写 *** 作比较多,有外键、事务等需求的应用,系统内存较大。
III2命名规则
多数开发语言命名规则:比如MyAdress
多数开源思想命名规则:my_address
避免随便命名
III3字段类型选择
字段类型的选择的一般原则:
根据需求选择合适的字段类型,在满足需求的情况下字段类型尽可能小。
只分配满足需求的最小字符数,不要太慷慨。
原因:更小的字段类型更小的字符数占用更少的内存,占用更少的磁盘空间,占用更少的磁盘IO,以及占用更少的带宽。
III31 整型:
见如下图:
类型
字节
最小值
最大值
(带符号的/无符号的)
(带符号的/无符号的)
TINYINT
1
-128
127
0
255
SMALLINT
2
-32768
32767
0
65535
MEDIUMINT
3
-8388608
8388607
0
16777215
INT
4
-2147483648
2147483647
0
4294967295
BIGINT
8
-9223372036854775808
9223372036854775807
0
18446744073709551615
根据满足需求的最小整数为选择原则,能用INT的就不要用BIGINT。
用无符号INT存储IP,而非CHAR(15)。
III32 浮点型:
类型
字节
精度类型
使用场景
FLOAT(M,D)
4
单精度
精度要求不高,数值比较小
DOUBLE(M,D)(REAL)
8
双精度
精度要求不高,数值比较大
DECIMAL(M,D)(NUMERIC)
M+2
自定义精度
精度要求很高的场景
III33 时间类型
类型
取值范围
存储空间
零值表示法
DATE
1000-01-01~9999-12-31
3字节
0000-00-00
TIME
-838:59:59~838:59:59
3字节
00:00:00
DATETIME
1000-01-01 00:00:00~9999-12-31 23:59:59
8字节
0000-00-00 00:00:00
TIMESTAMP
19700101000000~2037年的某个时刻
4字节
00000000000000
YEAR
YEAR(4):1901~2155 YEAR(2):1970~2069
1字节
0000
III34 字符类型
类型
最大长度
占用存储空间
CHAR[(M)]
M字节
M字节
VARCHAR[(M)]
M字节
M+1字节
TINYBLOD,TINYTEXT
2^8-1字节
L+1字节
BLOB,TEXT
2^16-1字节
L+2
MEDIUMBLOB,MEDIUMTEXT
2^24-1字节
L+3
LONGBLOB,LONGTEXT
2^32-1字节
L+4
ENUM('value1','value2',)
65535个成员
1或2字节
SET('value1','value2',)
64个成员
1,2,3,4或8字节
注:L表示可变长度的意思
对于varchar和char的选择要根据引擎和具体情况的不同来选择,主要依据如下原则:
1 如果列数据项的大小一致或者相差不大,则使用char。
2 如果列数据项的大小差异相当大,则使用varchar。
3 对于MyISAM表,尽量使用Char,对于那些经常需要修改而容易形成碎片的myisam和isam数据表就更是如此,它的缺点就是占用磁盘空间。
4 对于InnoDB表,因为它的数据行内部存储格式对固定长度的数据行和可变长度的数据行不加区分(所有数据行共用一个表头部分,这个标头部分存放着指向各有关数据列的指针),所以使用char类型不见得会比使用varchar类型好。事实上,因为char类型通常要比varchar类型占用更多的空 间,所以从减少空间占用量和减少磁盘i/o的角度,使用varchar类型反而更有利。
5 表中只要存在一个varchar类型的字段,那么所有的char字段都会自动变成varchar类型,因此建议定长和变长的数据分开。
III4编码选择
单字节 latin1
多字节 utf8(汉字占3个字节,英文字母占用一个字节)
如果含有中文字符的话最好都统一采用utf8类型,避免乱码的情况发生。
III5主键选择原则
注:这里说的主键设计主要是针对INNODB引擎
1 能唯一的表示行。
2 显式的定义一个数值类型自增字段的主键,这个字段可以仅用于做主键,不做其他用途。
3 MySQL主键应该是单列的,以便提高连接和筛选 *** 作的效率。
4 主键字段类型尽可能小,能用SMALLINT就不用INT,能用INT就不用BIGINT。
5 尽量保证不对主键字段进行更新修改,防止主键字段发生变化,引发数据存储碎片,降低IO性能。
6 MySQL主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
7 MySQL主键应当有计算机自动生成。
8 主键字段放在数据表的第一顺序。
推荐采用数值类型做主键并采用auto_increment属性让其自动增长。
III6其他需要注意的地方
NULL OR NOT NULL
尽可能设置每个字段为NOT NULL,除非有特殊的需求,原因如下:
1 使用含有NULL列做索引的话会占用更多的磁盘空间,因为索引NULL列需要而外的空间来保存。
2 进行比较的时候,程序会更复杂。
3 含有NULL的列比较特殊,SQL难优化,如果是一个组合索引,那么这个NULL 类型的字段会极大影响整个索引的效率。
索引
索引的缺点:极大地加速了查询,减少扫描和锁定的数据行数。
索引的缺点:占用磁盘空间,减慢了数据更新速度,增加了磁盘IO。
添加索引有如下原则:
1 选择唯一性索引。
2 为经常需要排序、分组和联合 *** 作的字段建立索引。
3 为常作为查询条件的字段建立索引。
4 限制索引的数据,索引不是越多越好。
5 尽量使用数据量少的索引,对于大字段可以考虑前缀索引。
6 删除不再使用或者很少使用的索引。
7 结合核心SQL优先考虑覆盖索引。
8 忌用字符串做主键。
反范式设计
适当的使用冗余的反范式设计,以空间换时间有的时候会很高效。
IV Mysql软件优化
开启mysql复制,实现读写分离、负载均衡,将读的负载分摊到多个从服务器上,提高服务器的处理能力。
使用推荐的GA版本,提升性能
利用分区新功能进行大数据的数据拆分
V Mysql配置优化
注意:全局参数一经设置,随服务器启动预占用资源。
key_buffer_size参数
mysql索引缓冲,如果是采用myisam的话要重点设置这个参数,根据(key_reads/key_read_requests)判断
innodb_buffer_pool_size参数
INNODB 数据、索引、日志缓冲最重要的引擎参数,根据(hit riatos和FILE I/O)判断
wait_time_out参数
线程连接的超时时间,尽量不要设置很大,推荐10s
max_connections参数
服务器允许的最大连接数,尽量不要设置太大,因为设置太大的话容易导致内存溢出,需要通过如下公式来确定:
SET @k_bytes = 1024;
SET @m_bytes = @k_bytes 1024;
SET @g_bytes = @m_bytes 1024;
SELECT
(
@@key_buffer_size + @@query_cache_size + @@tmp_table_size+
@@innodb_buffer_pool_size + @@innodb_additional_mem_pool_size+
@@innodb_log_buffer_size+
@@max_connections
( @@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size+
@@join_buffer_size + @@binlog_cache_size + @@thread_stack
) )
/ @g_bytes AS MAX_MEMORY_USED_GB;
thread_concurrency参数
线程并发利用数量,(cpu+disk)2,根据(os中显示的请求队列和tickets)判断
sort_buffer_size参数
获得更快的--ORDER BY,GROUP BY,SELECT DISTINCT,UNION DISTINCT
read_rnd_buffer_size参数
当根据键进行分类 *** 作时获得更快的--ORDER BY
join_buffer_size参数
join连接使用全表扫描连接的缓冲大小,根据select_full_join判断
read_buffer_size参数
全表扫描时为查询预留的缓冲大小,根据select_scan判断
tmp_table_size参数
临时内存表的设置,如果超过设置就会转化成磁盘表,根据参数(created_tmp_disk_tables)判断
innodb_log_file_size参数(默认5M)
记录INNODB引擎的redo log文件,设置较大的值意味着较长的恢复时间。
Ø innodb_flush_method参数(默认fdatasync)
Linux系统可以使用O_DIRECT处理数据文件,避免OS级别的cache,O_DIRECT模式提高数据文件和日志文件的IO提交性能
innodb_flush_log_at_trx_commit(默认1)
表示每秒进行一次log写入cache,并flush log到磁盘。
表示在每次事务提交后执行log写入cache,并flush log到磁盘。
表示在每次事务提交后,执行log数据写入到cache,每秒执行一次flush log到磁盘。
VI Mysql语句级优化
1 性能查的读语句,在innodb中统计行数,建议另外弄一张统计表,采用myisam,定期做统计一般的对统计的数据不会要求太精准的情况下适用。
2 尽量不要在数据库中做运算。
3 避免负向查询和%前缀模糊查询。
4 不在索引列做运算或者使用函数。
5 不要在生产环境程序中使用select from 的形式查询数据。只查询需要使用的列。
6 查询尽可能使用limit减少返回的行数,减少数据传输时间和带宽浪费。
7 where子句尽可能对查询列使用函数,因为对查询列使用函数用不到索引。
8 避免隐式类型转换,例如字符型一定要用’’,数字型一定不要使用’’。
9 所有的SQL关键词用大写,养成良好的习惯,避免SQL语句重复编译造成系统资源的浪费。
10 联表查询的时候,记得把小结果集放在前面,遵循小结果集驱动大结果集的原则。
11 开启慢查询,定期用explain优化慢查询中的SQL语句。
服务器内存占用过高的解决方法:
1,首先通过任务管理器进行进程排序,查找占用内存较大的程序进程。一般占用内存较大的进程有W3WP、sqlserver、mysqld-ntexe;
2, 站点进程w3wp 可以在cmd命令行中通过 iisapp 命令来对应是那个网站占用内存较大。可以通过设置回收时间、内存最大使用值或共用进程池来减少内存的占用,但是如果要保证网站的访问质量,还是建议升级至更高型号来解决;
3,数据库 sql server 也可以通过数据库的企业管理器来设置最大内存占用,但是如果网站程序必须要占用较大内存的话,设置后会发生页面报错、打不开等问题;
4,MYSQL本身会占用较大虚拟内存,如果不使用mysql数据库的话,可以将其停止。
以上就是关于网站的数据库需要维护吗(数据库的维护怎么做)全部的内容,包括:网站的数据库需要维护吗(数据库的维护怎么做)、关于网站后台管理及数据库(数据库运营)、网站访问量大 怎样优化mysql数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)