
理由如下:
VBA作为office的原始自带语言,相对于其他语言 *** 作Excel更加方便快捷
VBA是Visual Basic For Application 的简称,语法体验和VB一致,都是一个大家族,作为一门脚本语言,学习成本相对于其他语言较低。
Python作为最近几年的热门语言,其语法简洁明了,轮子也多,财务领域,可以用于数据的采集,ETL和后续分析。就数据方面Python *** 作起来方便很多,但是对于一些格式图表细节则不如VBA来的方便。
VBA学习成本相对Python低一些
对于新手,首先要学习的就是录制宏!
在Excel中录制宏,把我们的 *** 作录制下来,反复使用,就好像录制视频一样,可以反复观看,其中80%的功能,我们可以通过录制宏来实现,剩下要学习的知识并不是很多
需要学习的大概有
1、工作薄对象,工作表对象、单元格对象、图表类对象(相对前两者使用少一些)等
2、循环和判断语句(FOR、DO、IF常用)等
3、其他重要:数组、FSO、正则、字典等
财务人员使用Excel频率高,跨文件 *** 作必学VBA
只会函数、技巧、图表对于复杂一些的财务需求是远远不够的,
集团中,财务面对是经常是大量的文件汇总处理、数据抽取、分析、拆分
这种跨文件,大量的处理,是函数所无法完成的,如果会VBA则得心应手
未来可以推荐PBI系列
随着PBI和Power系列的出现,给Excel插上了翅膀,
Power Query :对数据的ETL简单高效,降低了学习成本,对于新手比较友好,
Power Pivot :号称超级透视表,透视表大家都知道非常的好用,对于简单的数据分析,非常方便,那么这个超级透视表,可见一斑
Power Map:数据可视化展示,比自带的常用图表展示更加方便,在Power BI中有了更多的图表插件可以学习
简单说两句,大家有兴趣可以留言,进一步交流沟通!
作用如下:
一、系统表存储SQL所有的系统信息。
存储有关数据库服务中的元数据所谓元数据即(比如数据服务器有哪些用户数据库、数据库服务器有哪些登陆账号,数据库中都有哪些表,每个表都有哪些字段每个数据库有哪些存储过程、视图等等的数据),系统表一般sys开头。
二、了解数据库中系统表,可以编写sql语句或编程的时候用到。
在创建数据库的时候选判断数据库是否存在;创建数据库中对象(表、视图、存储过程、索引等)是否存在,存在返回,不存在则执行创建语句。批量删除数据库中对象,比如一次性删除某个具体数据库中的所有用户创建的表、视图、索引等对象。
三、重要的几个系统表
Sysxlogins:存在与Master数据库中,(所有数据库中用户和角色),记录着所有能登陆到Sqlserver的帐号。要重启服务或reconfigurewithoverride,:记录着当前系统所有的数据库。只有Master数据中有此系统表。
扩展资料:
一、数据库优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂 *** 作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
二、数据库缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
Oracle GoldenGate 用于在各种企业系统间以亚秒级速度复制和集成事务数据,是同类最佳的、易于部署的产品。Oracle GoldenGate 可以灵活地在同类和异类系统(包括不同版本的 Oracle Database、不同的硬件平台)之间以及 Oracle 数据库和非 Oracle 数据库(包括 Microsoft SQL Server、用于开放系统和 z/OS 的 IBM DB2、Sybase 等等)之间移动数据。本文演示如何安装、设置和配置此产品以轻松实现 Oracle Database 10g 和 11g 之间数据的无缝复制,还介绍了此产品的加速能力。
Oracle 于 2009 年收购了 GoldenGate,我们可以看到在全球各行业超过 4,000 个解决方案中实施了 Oracle GoldenGate。该软件执行实时的、基于日志的更改数据捕获 (CDC),能够在异构数据库间以极低的延迟和很小的空间移动大量事务数据。
通常,您部署 GoldenGate 捕获、数据泵和交付进程,并且可将这些进程部署在许多不同的 *** 作系统和数据库上。可根据目标数据库的需要,复制所有数据或部分数据。当 Oracle GoldenGate 用于 Oracle 数据库时,可以复制数据 *** 作语言 (DML) 和数据定义语言 (DDL) *** 作。(目前只能在同类(不能在异类的)Oracle 版本间复制 DDL *** 作。)Oracle GoldenGate 官方支持 Oracle9i 第 2 版到 Oracle Database 11g 第 2 版,并且对所有这些版本提供 DML/DDL 支持。该产品可用于 Oracle Database 的企业版和标准版。
如上所述,可以在所支持的同类或异类 Oracle Database 版本间移动数据,也可以在 Oracle 数据库和非 Oracle 数据库间移动数据。大多数情况下,可对数据进行筛选、映射和转换。注意,如果启用了 DDL 支持(换言之,如果使用 GoldenGate 进行同类 Oracle Database 版本之间的 DDL 复制),则不支持数据筛选、映射和转换。
Oracle GoldenGate 是以 DBA 为中心的,因此 DBA 很容易学会如何使用它。其实现时间也是最少的 — 一些站点只用一个月的时间就完全付诸实现。
可获得什么
Oracle GoldenGate 产品系列包括:
Oracle GoldenGate
Management Pack for Oracle GoldenGate(也称为 Oracle GoldenGate Director)Oracle GoldenGate Veridata
Oracle GoldenGate Application Adapters
Oracle GoldenGate for Mainframe
为使增值服务造福客户,Oracle GoldenGate 核心许可包括 Oracle Active Data Guard 的全权使用许可和 Oracle Database 中 XStream 的全权使用许可。XStream 是与 Oracle Streams 接口的 API。Oracle Active Data Guard 支持主动打开备用数据库以提供报表服务,甚至在应用重做数据的同时也如此。这个特性非常棒,可将生产报表和查询工作分流到备用数据库上。
一直以来,Oracle Streams 只用于在 Oracle 数据库间复制数据。Oracle GoldenGate 还可以在非 Oracle 数据库间复制数据,并且这种复制易于建立。
我们应注意到,已发布的 Oracle — GoldenGate 发展方向声明中指出,“由于 Oracle GoldenGate 的战略性,将继续支持 Oracle Streams,但不会对其进行主动增强。而是对 Oracle Streams 中最好的内容行评估以确定是否将其并入 Oracle GoldenGate 中。”
此演示的目的
为了进行此次演示,您应在一台 Microsoft Windows 服务器上有三个数据库。这三个数据库是 HRPRD1、HRPRD2 和 HRPRD3。其数据库版本分别为 Oracle Database 11g、Oracle Database 10g 和 Oracle Database 10g。
这三个数据库的 SYS 和 SYSTEM 口令已设置为 hrpassword1,用于测试目的。稍后可更改此口令。
此演示的目的是在 HRPRD2 和 HRPRD3 这两个 Oracle 10g 数据库的 HREMPLOYEES 表之间建立单向复制。对第一个数据库中此表的 DML 更改应传给第二个数据库。然后,我们将对这一复制进行增强,可以将更改同时复制到 Oracle 11g 数据库 HRPRD1 中。其结果是,对 HRPRD2 中该表的任何更新、插入和删除不仅将会成功更新 HRPRD3,也会成功更新 HRPRD1。
这种从 Oracle Database 10g 到 Oracle Database 10g 然后再到 Oracle Database 11g 的复制策略常用于升级情况,进行升级时,需要先复制数据,然后方可切换到升级后的数据库版本。Oracle GoldenGate 提供了简单的解决方案。
注意,针对 Oracle 数据库时,您不 需要使用 Microsoft ODBC 数据源管理器为这些数据库创建数据源名称 (DSN)。Oracle GoldenGate 复制将使用监听器直接连接到 Oracle 数据库。
需要下载的内容
首先,对于 Windows 系统,需要从 Microsoft 下载中心下载 Microsoft Visual C ++ 2005 SP1 Redistributable Package,然后进行安装。如果计算机上未安装 Visual C++,这用于安装运行本应用程序时所需的 Visual C++ 库的运行时组件。
接下来,需要从 Oracle 技术网下载 Oracle GoldenGate 软件。截至本文撰写时,OTN 只支持 Windows 平台 64 位版本:适用于 Windows 2000、XP 和 2003(64 位)上的 Oracle 10g 的 Oracle GoldenGate 1040x 版 (8 MB)。要下载 32 位 Windows 版本,您必须使用 Oracle E-Delivery 网站。(请注意,E-Delivery 下载有一个为期 30 天的试用产品许可,而非 OTN 开发人员许可。)登录此网站后,搜索适用于 Microsoft Windows(32 位)平台的“Oracle Fusion Middleware Product Pack”(因为 Oracle GoldenGate 被视作一个 Oracle 融合中间件产品,而非 Oracle Database 产品),然后单击 Go。
此时会出现介质包列表。在此列表中,先选择 Oracle GoldenGate on Oracle Media Pack for Microsoft Windows (32-bit)。
此介质包中包含:
适用于 Windows 2000、XP 和 2003 上的 Oracle 10g 的 Oracle GoldenGate 1040x 版V18162-01
大小:84 MB
适用于 Windows 2000、XP 和 2003 上的 Oracle 11g 的 Oracle GoldenGate 1040x 版V18164-01
大小:84 MB
Oracle GoldenGate 文档
V18423-01
大小:20 MB
下载这三个 zip 文件,因为您需要适用于 Oracle 10g 和 Oracle 11g 的 Oracle GoldenGate。
然后,返回到 Oracle 融合中间件的介质包列表,从中选择 Management Pack for Oracle GoldenGate (v2002) Media Pack for Microsoft Windows。
该管理包介质包中包含:
适用于 Windows 的 Oracle GoldenGate Director V200x ServerV18127-01
大小:228 MB
适用于 Windows 的 Oracle GoldenGate Director V200x ClientV18128-01
大小:55 MB
Oracle GoldenGate Director 文档
V18129-01
大小:952 KB
如果您想安装管理包,下载所有这些文件。该管理包是一个安装您 Windows 服务器上的独立产品,。该产品原名为 Oracle GoldenGate Director,它包含一个多层的客户端-服务器应用程序,使组织可以轻松监视和管理其 Oracle GoldenGate 部署。
使用 Oracle GoldenGate Director 的 GUI 界面,可以集中设计和配置 Oracle GoldenGate,还可以管理和监视为了在公司各服务器间复制数据而建立的各种 Oracle GoldenGate 进程。
介质包的主列表中还有其他一些介质包,如 Oracle GoldenGate Veridata Media Pack for Microsoft Windows。
Oracle GoldenGate Veridata 软件作为服务器进行安装,在不同平台上具有代理,它负责将一组数据与另一组数据进行对比以识别不同步的数据,对比时无需停机。此对比可全天候进行,可与大流量的复制同时进行。还可在不同平台间进行数据对比。
除了上述主要介质包外,列表中还显示了其他 Oracle GoldenGate 包。这些软件包适用于非 Oracle 数据库,如 Sybase、SQL Server、IBM DB2、Teradata,还有 JMS 和平面文件,这反映了 Oracle GoldenGate 支持异构的性质。
安装步骤
您下载的 Oracle GoldenGate 文档 zip 文件 (V18423-01zip)中包含 Oracle GoldenGate Oracle Installation and Setup Guide Version 104 (gg_ora_inst_v104pdf),其中描述了适用于 Linux、UNIX 和 Windows 上的 Oracle 数据库的 Oracle GoldenGate 的安装步骤。
注意,还有其他一些安装文档,它们针对适用于 Sybase、SQL Server、DB2、MySQL、Teradata 等的 Oracle GoldenGate。
首先,将 Oracle GoldenGate for Oracle 10g (V18162-01zip) 解压缩到一个新的 Oracle GoldenGate 软件目录中,目录名中不含任何空格。例如,您可以使用 C:\OGG10G 作为 Oracle GoldenGate 目录。此目录中的软件代码将用于建立第一个和第二个 Oracle 10g 数据库之间的复制。
由于您的第三个数据库是 Oracle Database 11g 版,您还需要解压缩 Oracle GoldenGate for Oracle 11g (V18164-01zip)。对于此版本的 Oracle GoldenGate,您需要使用一个单独的目录,C:\OGG11G。此目录中的软件代码将用于控制到第三个 Oracle Database 11g 数据库的复制。
如果您有 Oracle9i 数据库并且想从其复制数据或向其复制数据,需要另一个适用于 Oracle9i 的 Oracle GoldenGate 软件。不过,您不能通过 Oracle 网站下载 Oracle GoldenGate 的 Oracle9i 版本。如果您需要此版本,可能需要通过 My Oracle Support 发出一个系统请求 (SR)。
在命令提示符处输入以下命令:
mkdir C:\OGG10G
cd C:\OGG10G
unzip c:\V18162-01zip
mkdir C:\OGG11G
cd C:\OGG11G
unzip C:\V18164-01zip
# start the 10g databases if not already startednet start OracleServiceHRPRD2
net start OracleServiceHRPRD3
# start the 11g database if not already startednet start OracleServiceHRPRD1
设置环境变量
现在,您可以打开两个命令窗口(开始运行Cmd),针对 Oracle Database 10g 和 Oracle Database 11g 将相应的环境变量(如 ORACLE_HOME、ORACLE_SID、LD_LIBRARY_PATH 等)设置为相应的值。
为了在两个 Oracle 10g 数据库间建立复制,将这些变量进行如下设置:
set ORACLE_HOME=C:\Oracle\product\1020\db_1set ORACLE_SID=HRPRD2
set PATH=%ORACLE_HOME%\bin;%PATH%
set LD_LIBRARY_PATH=C:\OGG10G; %ORACLE_HOME%\LIB;%ORACLE_HOME%\jdbc\lib
set CLASSPATH=;C:\Program
Files\Java\jre6\lib\ext\QTJavazip;%ORACLE_HOME%\jdbc\libORACLE_SID 可设置为 HRPRD2 或 HRPRD3,两者都是 Oracle 10g 数据库。请注意 PATH、LD_LIBRARY_PATH 和 CLASSPATH 的值。
另一种方法是用系统变量进行这些设置,为此您可以在 Windows XP Professional 中使用:我的电脑属性高级环境变量系统变量。在这里添加新的系统变量并按如上所述更改路径。
在此例中,在一台服务器上运行两个数据库版本的缺点是,每次启动 Oracle GoldenGate for Oracle 10g 或 Oracle GoldenGate for Oracle 11g 的 Manager 服务时,都必须更改系统变量。您可能要添加与 Oracle Database 11g 有关的系统变量,然后启动 Oracle GoldenGate for Oracle 11g Manager 服务。这之后,您可能要更改这些系统变量,使其适合于 Oracle Database 10g,然后启动 Oracle GoldenGate for Oracle 10g Manager 服务。由于这是一个测试系统,这么做可能没有问题。但在生产环境下,您需要采取一种更自动化的方法(如采用脚本化的方法)在脚本中设置这些变量并启动 Manager 服务。
GGSCI 命令解释程序
在命令窗口或“我的电脑”级别设置环境变量之后,转到 Oracle GoldenGate 的文件夹下,通过命令行(见图 1)或 Windows 资源管理器运行 Oracle GoldenGate Command Interpreter for Oracle (GGSCI) 程序。
图 1 Oracle GoldenGate Command Interpreter现在,您可在 GGSCI 中执行 CREATE SUBDIRS 命令来创建 Oracle GoldenGate 的工作子目录。参见图 2,其中列出了所创建的重要目录。
图 2 创建工作子目录
将 Oracle GoldenGate Manager 作为本地程序运行您可以将 Oracle GoldenGate Manager 当作一个本地程序在命令窗口中运行,也可以将它作为一个 Windows 服务安装以便在 Windows 启动时自动启动。我们建议使用后面这种方法。
如果您希望将其作为一个本地命令运行,只需调用目录中的 Manager 执行文件(调用时带着一个参数文件)即可。命令语法为:
C:\OGG10G>mgr
Usage: MGR PARAMFILE [REPORTFILE ]
[PID ] [PORT ]
[USESUBDIRS] [NOUSESUBDIRS]
[PAUSEATEND] [NOPAUSEATEND]
[CD ]
PARAMFILE 是必需的参数。因此,您必须在 GGSCI 中创建一个参数文件:
GGSCI (HaviPori) 1> edit params mgr
此命令将在 C:\OGG10G\dirprm 目录中创建一个新的 mgrprm 文件。在该文件中键入将用于运行 manager 进程的端口号,然后保存该文件。
PORT 7809
默认端口号为 7809。无论您选择哪个端口号,请确保该端口号未被任何其他程序所使用并且没有任何防火墙限制。因为 PORT 是 Manager 唯一需要的参数,所以必须指定该参数。GGSCI 使用该端口将请求发送给 Manager 以启动进程,并且 Extract 进程也使用该端口进行各种 *** 作。
创建该参数文件之后,就可以在 Windows 命令提示符下启动 Manager 了,如下所示:
C:\OGG10G>mgr paramfile c:\OGG10G\dirprm\mgrprm该命令启动 Manager,并且显示图 3 所示的消息:
图 3 在 Windows 命令提示符处启动 Manager
必须保持此窗口为打开状态,以保持 Manager 运行。如果您注销,该窗口将关闭,Manager 将停止运行。
将 Manager 作为 Windows 服务进行安装
上文描述了手动启动 Manager 的方法,还有一种启动方法,那就是将 Manager 作为自动启动的 Windows 服务来安装。
在 Windows 集群环境下必须使用后面这种方法,因为出现故障时只有服务可以自动切换到备用服务器上。在非集群系统中,将 Manager 作为服务来安装是可选的方法但也是强烈建议的方法。
在 Windows 中作为服务创建 Manager 进程时,该服务的默认名称为 GGSMGR。您可以为此服务指定自定义的名称。如果您在同一台服务器上需要不止一个 Oracle GoldenGate Manager 服务,比如一个针对 Oracle GoldenGate for Oracle 10g 的服务和另一个针对 Oracle GoldenGate for Oracle 11g 的服务,则指定名称是很重要的。如果您打算运行 Oracle GoldenGate Veridata,还需要一个 Manager 服务。
用以下方法为 Manager 服务指定一个不同的名称。在 GGSCI 命令提示符处执行以下命令:
EDIT PARAMS /GLOBALS
在出现的记事本编辑器中,选择新建一个文件(如果是首次这么做),然后输入以下代码并保存该 GLOBALS 文件:
MGRSERVNAME OracleGGSMGR1
根据 Windows 上的 Oracle 服务一般带有 Oracle 前缀(如 OracleDBConsole、OracleJobScheduler 服务)的惯例,使用名称 OracleGGSMGR1。
通过 C:\OGG10G 目录中的 Install 程序可轻松创建 Manager 服务。使用 install addservice 命令,如图 4 所示:
图 4 创建 Manager 服务
新服务在 Windows 服务列表中显示为一个自动启动的服务(见图 5):
图 5 Manager 服务属性
Manager 服务以本地系统帐户运行,也可配置为以特定帐户(使用用户名和口令选项)运行,该用户名和口令可由 addservice 命令指定。现在可通过以下命令启动该服务:
GGSCI (HaviPori) 1> start manager
Starting Manager as service ('OracleGGSMGR1')
Service started
安装 Windows 事件消息
还可使用 Install 程序将事件消息安装到 Windows 注册表中,这样它们可通过 Windows Event Manager 显示。使用以下命令可完成此 *** 作:
C:\OGG10G>install addevents
Oracle GoldenGate messages installed successfully
Install program terminated normally
还可将 categorydll 和 ggsmsgdll 文件从 C:\OGG10G 目录复制到 C:\WINDOWS\system32 目录,从而生成具体的而不是一般性的错误。
建立复制 — 在 HRPRD2 上建立 Extract 进程Oracle GoldenGate Manager 进程已启动并运行。下一步要建立数据库之间的复制。
为此,您至少需要创建和配置一个 Extract 和 Replicat 组。在这些组中指定您想捕获和复制的数据。
Extract 进程捕获发生的数据更改并将这些更改发送给目标服务器上的一个“线索”。在目标服务器上启动 Replicat 进程,该进程负责进行实际的复制,它从线索中获取数据更改,然后将这些更改应用到目标数据库中。
您还需要为 Oracle GoldenGate Replication 准备数据库:在数据库级打开追加日志 功能。为此,在以 SYSDBA 身份登录到数据库后使用以下命令:
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;Database altered
SQL> alter system switch logfile;
System altered
现在可以添加 Extract 组了。
GGSCI (HaviPori) 1> ADD EXTRACT emp_ext, TRANLOG, BEGIN NOWEXTRACT added
您在这里指定了 TRANLOG,这意味着事务(重做)日志成为数据源。BEGIN 后面可以是该日志中的一个时间戳以便从该时刻开始进行处理,也可以是 NOW 以便立即开始处理。
导语:服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。那么,我们可以怎么选择好的服务器
怎么选择好的服务器你需要从不同的角度来决定选择一台什么样的服务器,找到满足技术需要、业务发展和成本控制之间的最佳平衡点,为了做到这一点,绝对还是需要一点智慧。51IDC将在下面为大家介绍一些易于理解,尽可能全面的建议,并帮助你做出决定。
先不要急于决定需要怎样的CPU,几个硬盘,几个G内存,需要多少兆带宽这样的问题,那些是我们最后需要得到的答案。在这之前,先一起梳理几个问题。在下面,我们列出了一些“多少”或“什么样”的问题,拿起你的笔或在Windows记事本里新建一个文件,尝试根据下面四个问题来评估自己的需求:
1服务器运行什么应用
2需要支持多少用户访问
3需要多大空间来存储数据
4我的业务有多重要
1:服务器运行什么应用这是首先需要考虑的问题,在这里你要根据服务器的应用类型,也就是用途,来决定服务器的性能、容量和可靠性需求。我们按照前端服务器+应用程序服务器+数据服务器的常见基础架构来讨论:
11Web前端:正常情况下,我们认为大多数Web前端服务器(Front-end)对服务器的要求不大,例如静态Web服务器、动态Web服务器、服务器等等,因为在现有的技术框架中,我们有很多方案可以解决前端服务器的性能扩展和可靠性问题,例如LVS、Nginx反向代理、硬件负载均衡(F5,A10,Radware)等。甚至在很多访问量不高(几百个用户同时在线)的应用中,51IDC的经典酷睿服务器就可以满足需求。
12应用服务器:由于承担了计算和功能实现,我们需要为基于Web架构的应用程序服务器(Application Server)选择足够快的服务器,另外应用程序服务器可能需要用大量的内存,尤其是基于Windows基础架构的Ruby,Python,Java服务器。这一类服务器至少需要使用单路至强的配置。对于可靠性的问题,如果你的架构中只有一台应用服务器,那肯定需要这台服务器足够可靠,RAID绝对是不能忽视的选项。但如果有两台或更多的应用服务器,并设计了负载均衡机制,具有冗余功能,那我们则不必将每台服务器武装到底。
13特殊的应用:除了作为Web架构中的应用程序服务器之外,如果你的服务器是用来处理流媒体视频编码、服务器虚拟化、媒体服务器(Asterisk之类),或者作为游戏服务器(逻辑、地图、聊天)运行,则同样对CPU和内存需求比较高,我们至少要考虑单路至强的服务器。其中服务器虚拟化对存储的可靠性的要求都非常高,因为一个篮子里有十几个鸡蛋,篮子一定要足够牢靠才是。
14公共服务:我们指的是邮件服务器、文件服务器、DNS服务器、域控服务器这类服务器。通常情况我们会部署两台DNS服务器作为互相备份,域控主服务器也会拥有一台备份服务器(专用的或非专用的),所以对于可靠性,无需达到苛刻的地步。至于邮件服务器,至少需要具备足够的硬件可靠性和容量大小,这主要是为了对邮件数据负责,因为很多用户没有保存和归档邮件数据的习惯,当他们重装系统后,总会依赖重新下载服务器上的数据。至于性能问题,我们认为需要评估用户数量才能决定。
15数据库:我们最后讨论的应用,也是要求最高,最重要的服务器。无论你使用的是MySQL、SQLServer还是Oralce,一般情况下,我们认为它需要足够快的CPU,足够大的内存,足够稳定可靠的硬件。单路至强CPU/4GB内存/Raid1绝对是入门配置。关于准确的配置我们需要再讨论业务需求后才能作决定。
2:服务器需要支持多少用户访问服务器肯定是为了提供某种服务,而使用这些服务的用户同样是我们必须考虑的因素,有几个具体的问题你需要做出评估:有多少注册用户正常情况下有多少用户会同时在线访问每天同时在线访问的最高峰值大概是多少这些问题,对我们决定采用什么样的CPU,多大的内存有着至关重要的影响。51IDC建议你的技术人员和业务部门坐在一起来讨论这几个问题,最后甚至需要按照特定的技术模型和算法,将这些数字转化为一些更具体的技术数字,例如并发多少个连接(很多时候,用户数与连接数不是一个概念)。同时,你还要对未来的用户增长做一个尽可能准确的预测和规划,你的服务器需要支持越来越多的用户。
3:需要多大空间来存储数据我们需要从两个角度来计算这个问题,一个角度是有哪些类别的数据,包括: *** 作系统本身占用的空间、安装应用程序所需要的空间、应用程序所产生的数据、数据库、日志文件、邮件数据等等,如果是Web20类的网站,你还要计算每个用户的存储空间;另一个角度是从时间轴来考虑,这些数据每天都在增长,你至少要为未来1年(我们建议2~3年)的数据增长做个准确的测算,这可能仍然需要你的软件开发人员和业务人员一起提供足够的信息。最后你仍然需要为计算出来的数字结果乘15左右的系数,方便维护的时候做各种数据备份和文件转移 *** 作。
4我的业务有多重要:你需要根据自身的业务领域,来遵循一些要求,我们在下面举几个简单的例子,帮助你理解这些服务器对可靠性、数据完整性等方面的要求:
41如果你的服务器用来运行一个WordPress博客,与朋友们分享观点。那么我相信,一台酷睿服务器,1G内存外加一块160GB的硬盘就足够了。就算服务器出现了一点硬件故障,导致几个小时甚至一两天不能提供访问,生活会照常继续,天也不会塌下来。
42如果你的服务器用来作为测试平台,那么就不会如生产环境那样,对可靠性有极高的要求,你所需要的可能只是做好例行的数据备份,服务器宕机后,能有个人在今天把问题解决掉就OK了
43如果你是一个电子商务公司,服务器正在运行电子商务网站平台,那么请一定要像重视女朋友一样重视服务器,当硬件发生故障而导致宕机,你需要对以下危言耸听的后果做好心理准备:投诉电话被打爆、顾客大量流失、顾客要求退款、市场推广费用打水漂、员工无事可干,公司运营陷入瘫痪、数据丢失(这是最痛苦最灾难的结果,我们经历了太多这样的案例,它甚至会导致一个公司就此消亡)在这里,我们其实只需要简单讨论你的业务对服务器硬件可靠性的要求。换言之,如果你觉得业务不能承担硬盘损坏带来的停机或数据丢失风险,那么一定要选择一个合适的Raid卡,对于冗余电源问题,道理一样。(全面解决这个问题,不单考虑单个服务器的硬件,还需要结合系统架构的规划设计和运维管理来分析,这部分我们将单独撰写文章来讨论。)
在完成以上问题后,我们接下来就可以决定这些具体选项:
选择什么CPU
回忆一下上面”服务器运行什么应用“和“需要支持多少用户访问”两个问题的答案,这将帮助我们来选择合适的CPU。毫无疑问,CPU的主频越高,其性能也更高;两个CPU要比一个CPU来得更爽,至强肯定比酷睿更生猛。但我们究竟需要选择怎样的CPU我们在这里为你提供一些常见情况下的建议:
(1)如果你的业务刚刚起步,预算不是很充足,建议你选择一款经典酷睿服务器,毕竟51IDC的E5300服务器最便宜只需要450块钱一个月。而且,以后你可以根据业务发展情况,随时升级到更高配置的服务器。
(2)如果你需要在一台服务器同时运行多种应用服务,例如Net+Exchange+SQLServer,那么一个单路至强(例如X3330)或新一代酷睿I3/I7(双核四线程)将是最佳的选择。虽然从技术角度,这不是一个好主意,但至少能够帮你节约一大笔成本。
(3)如果你的服务器运行SQLServer、MySQL或者Oracle,而且目前有几百个用户同时在线,未来还会不断增长,那么你至少应该选择安装一个E5504(或更高主频)的至强服务器。当半年后负载越来越大的时候,可以选择增加一个CPU。
(4)如果你需要一台游戏服务器,那么我们建议你选择一台单路或双路的至强服务器。需要注意的是,使用双路CPU需要应用程序的支持,如果应用程序本身没有对双路CPU进行代码优化,就不会带来性能的显著提升,而且将造成投资的极大浪费。
需要多大的内存
同样,”服务器运行什么应用“和“需要支持多少用户访问”两个问题的答案,也将帮助我们来选择合适的内存容量。相比于CPU,我们更认为内存(RAM)是影响性能的最关键因素。因为在相当多正在运行的服务器中,我们发现CPU利用率一般都在10%~30%之间,甚至更低。但我们发现由于内存容量不够而导致服务器运行缓慢的案例比比皆是,如果服务器不能分配足够的内存给应用程序,应用程序就需要通过缓慢的硬盘接口来交换读写数据,这将导致网站慢的令人无法接受。内存大小主要取决于服务器的用户数量,当然也和应用软件对内存的最低需求和内存管理机制有关系,所以,最好由你的程序员或软件开发商给你最佳的内存配置建议。我们同样在下面给出了一些常见应用环境下的内存配置建议:
(1)无论是Windows下的`IIS还是Linux下的Apache,一般情况下Web前端服务器不需要配置特别高的内存,尤其是在集群架构中,1GB-2GB就已足够。只有当几千个并发用户,并运行动态脚本的时候,我们才会考虑使用4GB或更高的内存。
(2)对于运行Tomcat、Resin、WebLogic、Websphere或Net这样的应用服务器,2GB内存应该是基准配置。更准确数字需要根据用户数量和技术架构来确定。
(3)数据库服务器的内存由数据库实例的数量、表大小、索引、用户数来决定,一般建议配置4GB以上的内存,我们甚至在很多的客户案例中使用了24GB到48GB的内存。
(4)诸如Imail、Notes、Exchange这样的邮件服务器对内存的要求也并不高,1GB-2GB就可以满足了。
(5)对于一台文件服务器,1GB内存可能就足够了。
(6)还有一些特殊的服务器,我们需要为之配置尽可能高的内存容量,包括Squid,Varnish这样的缓存服务器,和Memcached Server。事实上,上面的数字已经足够慷慨,由于内存技术的不断进化和价格不断降低,我们才得以近乎奢侈的讨论4G、8G、16GB这些曾经不可想象的内存容量。早在2000年的时候,我面对的大多数服务器都是256MB、512MB内存,1GB已经算是高配,而那时同样也需要满足大量用户的访问。所以,除了花钱购买内存来满足应用程序的贪婪之外,系统优化和内存管理仍然是我们需要重视的问题。需要怎样的硬盘存储系统硬盘存储系统的选择和配置是整个服务器系统里最为复杂的一部分,我们需要考虑硬盘的数量、容量、接口类型、转速、缓存大小,以及是否需要Raid卡,Raid卡的型号和Raid级别等问题。甚至在一些高可靠性高性能的应用环境中,我们还需要考虑使用怎样的外部存储系统(SAN、NAS或DAS)。
网卡的问题:
如果你的基础架构是多服务器环境,而且服务器之间有大量的数据交换,那么我们建议你为每台服务器配置两个或更多的网卡,一个用来对外提供服务,另一个用来做内部数据交换。如果你对安全的要求特别高,我们甚至可以单独安装一个用于系统管理和日常维护的网卡。至于网卡端口的速率问题,这主要取决于你对带宽流量的评估。大多数情况下,百兆网卡足够用来对外提供服务,而内部数据交换建议使用千兆网卡。但话说回来,除了经典酷睿服务器之外,我们现在很难找到百兆接口的服务器主板了。还有一种情况需要注意,如果你选择51IDC的数据备份服务(Managed Backup Service),则需要一块单独的网卡连接到专有的数据备份网络中,进行每天的数据备份,这会带来几个好处:不会占用宝贵的外网带宽、保证数据传输的安全、提供快速的数据备份速度。我们非常希望这篇文章能够帮助你为服务器选择合适的硬件配置,如果你阅读后发现有不正确的地方,请在评论中指出来,我们会及时更新并感谢你的热情指正。
绝大多数服务器都是7x24小时运行的,如果你们是觉的x3650太贵的话,双机热备指的数据库的热备,只是系统和数据库需要用一样的,可以弄台便宜点的能满足你们性能需要的服务器,不一定非要用x3650在sqlserver2005中,可能大家在工作或学习的时候会经常发现这样一些问题,你使用一个账户在数据库中创建了一张表,却发现你自己创建的表却没有修改和查询的权限,这是一件很郁闷的事情,在中却不存在这样的问题,那为什么在2005中会出现这样的事情,这样的设置可以带来哪些好处?其实导致这一问题的原因主要在于2005中多了一个新的概念—架构。
首先我们来看一下msdn中对架构的定义:架构(Schema)是形成单个命名空间的数据库实体的集合。命名空间是一个集合,其中每个元素的名称都是唯一的。在这里,我们可以将架构看成一个存放数据库中对象的一个容器。
架构实际上在中就已经存在,当我们使用查询分析器去查询一个表的时候,一个完整的表的名称应该包括服务器名数据库名用户名对象名,而在中一个表的完全限定名称应该为服务器名数据库名架构名对象名
在2000中,假如有一个账户tt在test数据库中创建了一张表table1的时候,在服务器上对查询的语句应为selectfromtesttttable1,也就是说,在sqlserver2000中一张表所属的架构默认就是表的创建者的登录名称,用户可以和修改他所创建的所有数据库对象。但在2005中已经将用户和其创建对象所属架构的关联取消了,而加入了一个全新的架构体系,这样做的优点主要在于下面几个方面:
1多个用户可以通过角色(role)或组(Windowsgroups)成员关系拥有同一个架构。
2删除数据库用户变得极为简单。
3共享缺省架构使得开发人员可以为特定的应用程序创建特定的架构来存放对象,这比仅使用管理员架构(DBOschema)要好。
4在架构和架构所包含的对象上设置权限(permissions)比以前的版本拥有更高的可管理性。
5区分不同业务处理需要的对象,例如,我们可以把公共的表设置成pub的架构,把销售相关的设置为sales,这样管理和访问起来更容易
从概念上讲 大多数关系数据库系统是相似的 它们有一系列数据库组成 每个数据库包含一系列数据库表 但每个系统有各自组织其管理的数据方式 MySQL也不例外 缺省地 所有由MySQL服务器mysqld管理的数据存储在一个称为MySQL数据目录的地方 所有数据库都存放在哪儿 也包括提供服务器 *** 作信息的状态文件 如果你对一个MySQl安装执行管理任务 你应该熟知数据目录的布局及用途 本文介绍下列专题 如何确定数据目录的位置 服务器如何组织并提供对数据库和它管理的表的访问 在哪里找到由服务器生成的状态文件记忆它们包含什么内容 如何改变缺省地点或数据目录或单独数据库的组织结构 数据目录的位置 一个缺省数据目录被编译进了服务器 如果你从一个源代码分发安装MySQL 典型的缺省目录为/usr/local/var 如果从RPM文件安装则为/var/lib/mysql 如果从一个二进制分发安装则是/usr/local/mysql/data 在你启动服务器 通过使用一个 datadir=/path/to/dir选项可以明确指定数据目录位置 如果你想把数据目录置于其它缺省位置外的某处 这很有用 作为一名MySQL管理员 你应该知道你的数据目录在哪里 如果你运行多个服务器 你应该是到所有数据目录在哪里 但是如果你不知道确切的位置 由多种方法找到它 使用mysqladmin variables从你的服务器直接获得数据目录路径名 查找datadir变量的值 在Unix上 其输出类似于 %mysqladmin variables+ + +| variable_name | Value |+ + +| back_log | || connect_timeout | || basedir | /var/local/ || datadir | /usr/local/var/ | 在Windows上 输出可能看上去像这样 c:mysqladmin variables+ + +| variable_name | Value |+ + +| back_log | || connect_timeout | || basedir | c:mysql || datadir | c:mysqldata | 如果你有多个服务器在运行 它们将在不同的TCP/IP端口或套接字上监听 通过提供连接服务器正在监听的端口或套接字的 port或 socket选项 你可以轮流获得它们每一个的数据目录信息 %msqladmin port=port_name variables%mysqladmin socket=/path/to/socket variablesmysqladmin命令可运行在任何你能从其连接服务器的主机上 如果你想在一个远程主机连接服务器 使用一个 host=host_name选项 %mysqladmin host=host_name variables在Windows上 你可以通过使用 pipe强制一个命令管道连接和 socket=pipe_name指定管道名来连接监听一个命令管道的NT服务器 c:mysqladmin pipe socket=pipe_name variables你可以使用ps命令查看任何正在运行mysqld 进程的命令行 试一下下列命令之一并寻找 datadir %ps axww | grep mysql BSD风格%ps ef | grep mysqld System V风格如果你的系统运行多个服务器 ps命令可能特别有用 因为你能马上发现多个数据目录位置 缺点是必须在服务器上运行 而且可能没有有用的信息产生 除非在mysqld命令行上明确指定了 datadir选项 如果MySQL是从一个源代码分发安装的 你可以检查其配置信息确定数据目录位置 例如 位置可从顶级Makefile中获得 但是注意 位置是Makefile中的localstatedir值 不是datadir 而且 如果分发位于一个NFS挂载的文件系统并用来为多个主机构建MySQL 配置信息反映了分发被最新构建的主机 这可能不能提供你感兴趣的主机的数据目录信息 如果上述方式失败 你可以用find寻找数据库文件 下列命令寻找 frm 文件 它是任何MySQL安装的一部分 % find / name frm print在下文各例中 用DATADIR表示MySQL数据目录位置 数据目录结构 MySQL数据目录包含了服务器管理的所有数据目录 这些文件被组织成一个树状结构 通过利用Unix或Windows文件系统的层次结构直接实现 每个数据库对应于数据目录下的一个目录 在一个数据库中的表对应于数据目录下的文件 数据目录也包含由服务器产生的几个状态文件 如日志文件 这些文件提供了关于服务器 *** 作的重要信息 对管理特别在出了问题而试图确定问题原因时很有价值 例如 如果某个特定查询杀死服务器 你可以通过检查日志文件判别捣乱的查询 MySQL服务器怎样提供对数据的访问 在数据目录下的一切由一个单独的实体 MySQL服务器mysqld管理 客户程序绝不直接 *** 作数据 相反 服务器提供数据可访问的切入点 它是客户程序与它们想使用的数据之间的中介 当服务器启动时 如果有需要 它打开日志文件 然后通过监听网络连接位数据目录呈现一个网络接口 要访问数据 客户程序建立对服务器的一个连接 然后以MySQL查询传输请求来执行希望的 *** 作 服务器执行每一个 *** 作并将结果发回用户 服务器是多线程的并能服务多个同时的客户连接 然而 因为修改 *** 作一个执行一个 实际效果是顺序化请求 以使两个客户决不能在同一时刻改变同一记录 在正常的情况下 让服务器作为数据库访问的唯一仲裁者提供了避免可从同时访问数据库表的多个进程的破坏的保证 管理员应该知道有时服务器没有对数据目录的独裁控制 当你在一个单个数据目录上运行多个服务器 一般倪云新一个服务器管理主机上的所有数据库 但是有可能运行多个服务器 如果这完成提供对多个独立数据目录的访问 没有相互影响的问题 但哟也能启动多个服务器并指向同一个目录 一般地 这不是一个好主意 如果你试图这样 最好是你的系统提供良好的文件锁定功能 否则服务器将不能正确协作 如果你将多个服务器同时写入日志文件 你也冒着你的日志文件称为混乱的根源的风险 在你运行isamc和myisamc时 isamc和myisamc实用程序用于表的维护 诊错和修复 就想你想的那样 因为这些程序可以修改表内容 允许它们与服务器正在 *** 作的同时对表 *** 作 这样能导致表损坏 理解如何限制这种相互影响是很重要的 这样你不会损坏你的表 数据目表示 每个MySQL服务器管理的数据库有自己的数据库表 它是数据目录下的一个子目录 其名字与它表示的数据库相同 例如数据库my_db对应于数据库目录DATADIR/my_db 这种表示允许多个数据库级的语句在其实现中十分简单 CREATE DATABASE db_name在数据目录中创建一个db_name空目录 具有只允许MySQL服务器用户(运行服务器的Unix用户)的属主和模式 这等价于下列手工在服务器主机上创建数据库 %mkdir DATADIR/db_name%chmod DADADIR/db_name用一个空目录表示一个新数据库的最简单方法与其它数据库甚至为一个空数据库创建大量的控制文件或系统文件正好相反 DROP DATABASE语句实现同样简单 DROP DATABASE db_name删除数据库中的db_name目录和所有表文件 这几乎与下列命令一样 %rm rf DATADIR/db_name(差别是服务器只删除具有已知用于表的后缀名的文件 如果你在数据库目录创建了其它文件 则服务器保留它们 而且目录本身不被删除 SHOW DATABASE基本上不做什么 只是列出位于数据目录中的目录名 有些数据库系统保持一个主表 用于维护所有数据库 但在MySQL无此构件 由于赋予数据目录结构的简洁性 数据库列表隐含在数据目录的内容中 而且这样的表不必有额外的开销 数据库表的表示 每个数据库在数据库目录中有 个文件 一个样式(描述文件) 一个数据文件和一个索引文件 每个文件的基本名是表名 文件名扩展名代表文件类型 扩展名如下表 数据和索引文件的扩展名指出表使用老式IASM索引或新式MyISAM索引 表 MySQL文件类型文件类型 文件名扩展名 文件内容样式文件 frm 描述表的结构(它的列 列类型 索引等) 数据文件 ISD(ISAM)或 MYD(MyISAM) 包含数据文件上的所有索引的索引树 索引文件 ISM(ISAM)或 MYI(MyISAM) 该索引文件依赖表是否有索引而存在 当你发出一条CREATE TABLE tbl_name时语句定义表的结构时 服务器创建一个名为tbl_name frm的文件 它包括该结构的内部编码 同时也创建一个空数据和索引文件 初始化为包含指出无记录和无索引的信息(如果CREATE TABLE语句包括索引指定 索引文件反映出这些索引) 对应于表的文件的属主和模式被设置为只允许MySQL服务器用户访问 当你发出一条ALTER TABLE tbl_name语句时 服务器重新编码tbl_name frm 并修改数据和索引文件的内容以反映语句指定的结构改变 对于CREATE INDEX和DROP INDEX也是一样 因为它们被服务器视为与ALTER TABLE等价 DROP TABLE通过删除对应于表的三个文件来实现 虽然你可以通过删除数据库目录中对应于表的三个文件 但不能手工创建或修改一个表 如 如果my_db是当前数据库 DROP TABLE my_tbl大概等价于下列命令 <b lishixinzhi/Article/program/MySQL/201311/29333
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)