无法远程连接到服务器怎么回事?

无法远程连接到服务器怎么回事?,第1张

1ping服务器IP,看网络是否正常

2网络正常情况下,一般重启服务器就可以

3重启服务器还是不行的话,看看远程服务是否被禁用,servicesmsc里面也要看看(一般不是这个原因)

4一般是注册表fDenyTSConnections被至1了,改为0就行HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server下的"fDenyTSConnections

服务器(英文名称server),也称伺服器。指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。服务器的构成与一般的PC比较相似,但是服务器在稳定性、安全性、性能等方面都要求更高,因为CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。

基本简介

服务器  服务器是网络环境中的高性能计算机,它侦听网络上的其他计算机(客户机)提交的服务请求,并提供相应的服务,为此,服务器必须具有承担服务并且保障服务的能力。有时,这两种定义会引起混淆,如域名注册查询的Web服务器。

它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。服务器的构成与微机基本相似,有处理器、硬盘、内存、系统总线等,它们是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器(能使用户在其它计算机访问文件),数据库服务器和应用程序服务器。

服务器是网站的灵魂,是打开网站的必要载体,没有服务器的网站用户无法浏览。服务器就像一块敲门砖,就算网站在搜索引擎里的排名再好,网站打不开,用户无法浏览,网站就没有用户体验可言,网站能被打开是第一个重点。

定义

有时,这两种定义会引起混淆,如Web服务器。它可能是指用于网站的计算机,也可能是指像Apache这样的软件,运行在这样的计算机上以管理网页组件和回应网页浏览器的请求。

操作系统

服务器平台的操作系统。Unix操作系统,由于是Unix的后代,大多都有较好的作服务器平台的功能。常见的类Unix服务器操作系统有AIX、HP-UX、IRIX、Linux、FreeBSD、Solaris、Ubuntu、OS X Server、OpenBSD、NetBSD、和SCO OpenServer。微软也出版了Microsoft Windows服务器版本,像早期的Windows NT Server,现代的Windows 2000 Server和Windows Server 2003,正广泛使用的Windows Server 2008和刚刚于2012年9月4日发布的Windows Server 2012正式版。

服务器软件

服务器软件的定义如前面所述,服务器软件工作在客户端-服务器(C/S)或浏览器-服务器(B/S)的方式,有很多形式的服务器,常用的包括:

文件服务器(File Server) - 如Novell的NetWare

数据库服务器(Database Server) - 如Oracle数据库服务器,MySQL,PostgreSQL,Microsoft SQL Server等

邮件服务器(Mail Server) - Sendmail,Postfix,Qmail,Microsoft Exchange,Lotus Domino等

网页服务器(Web Server) - 如Apache,thttpd,微软的IIS等

FTP服务器(FTP Server) - Pureftpd,Proftpd,WU-ftpd,Serv-U等

域名服务器(DNS Server) - 如Bind9等

应用程序服务器(AP Server) - 如Bea公司的WebLogic,JBoss,Sun的GlassFish

代理服务器(Proxy Server) - 如Squid cache

电脑名称转换服务器 - 如微软的WINS服务器

使用目的

提高性能

有时候单个服务器无法满足使用需求,或者即使单个服务器能够达到这个要求,但是其成本太高。所以使用虚拟服务器来达到运用需求。

降低成本

多个虚拟服务器,可以通过软件架设在同一个实体服务器上,而每个虚拟服务器有可以提供服务器的所有功能,这样相对来说每个虚拟服务器的成本降低不少。

大家好,一起来搞一下mysql的负载均衡这个技术点。

1 haproxy介绍与配置

2 keeplived介绍与配置

3 mysql高可用搭建

1 可靠性与稳定性都非常出色,可与硬件级设备媲美。

2 支持连接拒绝,可以用于防止 DDoS 攻击

3 支持长连接、短连接和日志功能,可根据需要灵活配置

4 路由 HTTP 请求到后端服务器,基于 cookie 作会话绑定;同时支持通过获取指定的 url 来检测后 端服务器的状态

5 HAProxy 还拥有功能强大的 ACL 支持,可灵活配置路由功能,实现动静分离,在架构设计与实现上 带来很大方便

6 可支持四层和七层负载均衡,几乎能为所有服务常见的提供负载均衡功能

7 拥有功能强大的后端服务器的状态监控 web 页面,可以实时了解设备的运行状态 ,还可实现设备上 下线等简单操作。

8 支持多种负载均衡调度算法,并且也支持 session 保持。

9 Haproxy 七层负载均衡模式下,负载均衡与客户端及后端的服务器会分别建立一次 TCP连接,而在 四层负载均衡模式下(DR),仅建立一次 TCP 连接;七层负载均衡对负载均衡设备的要求更高,处理能力 也低于四层负载均衡。

全局设定

global settings:主要用于定义 haproxy 进程管理安全及性能相关的参数。

代理设定

proxies 共分为4段:defaults,frontend,backend,listen

注意:此处只做配置文件介绍,不做为后期负载均衡配置

在192168199175与192168199172(负载均衡服务器)中安装与配置如下

haproxy状态检测脚本不执行问题,如果是使用的service keeplived start 或者是 systemctl 方式启动,脚本可能会不执行,可以使用 Keepalived -f /etc/keepalived/keepalivedconf方式启动Keepalived

Mysql Proxy Lua读写分离设置是本文要介绍的内容,主要是来了解Mysql Proxy的Mysql 分离设置,为了未来MySQL读写分离的需要, 先行对MySQL官方的Mysql Proxy产品进行了初步测试 以下是测试过程,二进制版Mysql Proxy可以去下载。

1、设置说明

Master服务器: 19216841196 Slave服务器: 19216841197 Proxy服务器: 19216841203

2、安装Mysql Proxy

在Proxy服务器上安装即可 如果源码方式安装, 需提前安装pkg-config,libevent,glibc,lua等依赖包, 非常麻烦, 建议直接使用二进制版

# cd /u01/software/mysql # tar -zxvf Mysql Proxy-081-linux-rhel5-x86-32bittargz -C /usr/local # cd /usr/local # ln -s Mysql Proxy-081-linux-rhel5-x86-32bit Mysql Proxy # vi + ~/bash_profile export PATH=$PATH:/usr/local/Mysql Proxy/bin/ # ~/bash_profile

3、Mysql Proxy选项说明

# Mysql Proxy help-all

管理功能选项:

admin-address=host:port 指定一个mysqo-proxy的管理端口, 缺省是4041; admin-username=<string> username to allow to log in admin-password=<string> password to allow to log in admin-lua-script=<filename> script to execute by the admin plugin

代理功能选项:

-P, proxy-address=<host:port> 是Mysql Proxy 服务器端的监听端口, 缺省是4040; -r, proxy-read-only-backend-addresses=<host:port> 只读Slave的地址和端口, 缺省为不设置; -b, proxy-backend-addresses=<host:port> 远程Master地址和端口, 可设置多个做failover和load balance, 缺省是127001:3306; proxy-skip-profiling 关闭查询分析功能, 缺省是打开的; proxy-fix-bug-25371 修正 mysql的libmysql版本大于5112的一个#25371号bug; -s, proxy-lua-script=<file> 指定一个Lua脚本来控制Mysql Proxy的运行和设置, 这个脚本在每次新建连接和脚本发生修改的的时候将重新调用;

其他选项:

defaults-file=<file>配置文件, 可以把Mysql Proxy的参数信息置入一个配置文件里; daemon Mysql Proxy以守护进程方式运行 pid-file=file 设置Mysql Proxy的存储PID文件的路径 keepalive try to restart the proxy if it crashed, 保持连接启动进程会有2个, 一号进程用来监视二号进程, 如果二号进程死掉自动重启proxy

4、数据库准备工作

(1)安装半同步补丁(建议)

读写分离不能回避的问题之一就是延迟, 可以考虑Google提供的SemiSyncReplication补丁

(2)给用户授权

在Master/Slave建立一个测试用户, 因为以后客户端发送的SQL都是通过Mysql Proxy服务器来转发, 所以要确保可以从Mysql Proxy服务器上登录MySQL主从库

mysql> grant all privileges on to 'u_test'@'19216841203' identified by 'xxx' with grant option;

(3)在Master建立测试表

mysql> create table db_testt_test (col varchar(10)); mysql> insert into db_testt_test values ('testA'); mysql> select from db_testt_test; +-+ | col | +-+ | testA | +-+

5、Mysql Proxy启动

(1)修改读写分离lua脚本

默认最小4个最大8个以上的客户端连接才会实现读写分离, 现改为最小1个最大2个:

# vi +40 /usr/local/Mysql Proxy/share/doc/Mysql Proxy/rw-splittinglua connection pool if not proxyglobalconfigrwsplit then proxyglobalconfigrwsplit = { min_idle_connections = 1, max_idle_connections = 2, is_debug = true } end

这是因为Mysql Proxy会检测客户端连接, 当连接没有超过min_idle_connections预设值时, 不会进行读写分离, 即查询操作会发生到Master上

(2)启动Mysql Proxy

建议使用配置文件的形式启动, 注意配置文件必须是660权限, 否则无法启动 如果有多个Slave的话, proxy-read-only-backend-addresses参数可以配置多个以逗号分隔的IP:Port从库列表

# killall Mysql Proxy # vi /etc/Mysql Proxycnf [Mysql Proxy] admin-username=wangnc admin-password=iamwangnc admin-lua-script=/usr/local/Mysql Proxy/lib/Mysql Proxy/lua/adminlua proxy-backend-addresses=19216841196:3351 proxy-read-only-backend-addresses=19216841197:3351 proxy-lua-script=/usr/local/Mysql Proxy/share/doc/Mysql Proxy/rw-splittinglua log-file=/var/tmp/Mysql Proxylog log-level=debug daemon=true keepalive=true # chmod 660 /etc/Mysql Proxycnf # Mysql Proxy defaults-file=/etc/Mysql Proxycnf # ps -ef | grep Mysql Proxy | grep -v grep root 1869 1 0 18:16 00:00:00 /usr/local/Mysql Proxy/libexec/Mysql Proxy defaults-file=/etc/Mysql Proxycnf root 1870 1869 0 18:16 00:00:00 /usr/local/Mysql Proxy/libexec/Mysql Proxy defaults-file=/etc/Mysql Proxycnf # tail -50f /var/tmp/Mysql Proxylog

6、客户端连接测试

(1)先停止Slave的复制进程

mysql> stop slave;

(2)连接Proxy端口, 插入数据

# mysql -uu_test -pxxx -h19216841203 -P4040 -Ddb_test mysql> insert into db_testt_test values ('testB'); mysql> select from db_testt_test; +-+ | col | +-+ | testA | | testB | +-+

(3)多开几个客户端, 连接Proxy端口, 查询数据

# mysql -uu_test -pxxx -h19216841203 -P4040 -Ddb_test mysql> select from db_testt_test; +-+ | col | +-+ | testA | +-+

如果查询不到上步新插入的数据, 说明连接到了Slave, 读写分离成功 在同一线程再插入数据并验证:

mysql> insert into db_testt_test values ('testC'); mysql> select from db_testt_test; +-+ | col | +-+ | testA | +-+

发现insert操作成功, 但是select不出刚插入的数据, 说明同一线程也读写分离成功 从日志中可以验证:

# tail -50f /var/tmp/Mysql Proxylog [read_query] 19216841203:45481 current backend = 0 client default db = db_test client username = u_test query = select from db_testt_test sending to backend : 19216841197:3351 is_slave : true server default db: db_test server username : u_test in_trans : false in_calc_found : false COM_QUERY : true [read_query] 19216841203:45481 current backend = 0 client default db = db_test client username = u_test query = insert into db_testt_test values ('testC') sending to backend : 19216841196:3351 is_slave : false server default db: db_test server username : u_test in_trans : false in_calc_found : false COM_QUERY : true

(4)测试完毕后, 启动Slave的复制进程

mysql> start slave;

7、正式环境说明

1、Mysql Proxy当前还只是个测试版, MySQL官方还不建议用到生产环境中;

2、Mysql Proxy的rw-splittinglua脚本在网上有很多版本, 但是最准确无误的版本仍然是源码包中所附带的rw-splittinglua脚本, 如果有lua脚本编程基础的话, 可以在这个脚本的基础上再进行优化;

3、Mysql Proxy实际上非常不稳定, 在高并发或有错误连接的情况下, 进程很容易自动关闭, 因此打开keepalive参数让进程自动恢复是个比较好的办法, 但还是不能从根本上解决问题, 因此通常最稳妥的做法是在每个从服务器上安装一个Mysql Proxy供自身使用, 虽然比较低效但却能保证稳定性;

4、Amoeba for MySQL是一款优秀的中间件软件, 同样可以实现读写分离, 负载均衡等功能, 并且稳定性要大大超过Mysql Proxy, 建议大家用来替代Mysql Proxy, 甚至MySQL-Cluster

小结:详解Mysql Proxy Lua读写分离设置的内容介绍完了,希望通过本文的学习能对你有所帮助!

2008数据库备份和恢复步骤?

答方法/步骤如下

1

打开数据库管理工具,sqlservermanagementstudio,连接上选中对应的数据库,右键---任务---还原---数据库。

2

在常规页面,选择好要还原的数据库备份文件bak,勾选需要还原的备份,在选项页面,还原选项,勾选“覆盖现在有数据库”,然后确认等待还原成功就行。

3

备份操作是一样的操作流程,

如何轻松实现服务器远程备份?

一、部署控制中心

在网管机器B中,下载并运行ATIES安装程序,弹出组件安装对话框(图1),点击“InstallAcronisTrueImage

ManagementConsole”选项,同意用户许可协议后,一路点击“NEXT”按钮,就完成了ATIES控制中心的安装。(图1)

图1

二、远程部署Agent(代理)

要想进行远程备份操作,必须为服务器A远程安装Agent代理程序。

在网管机器B中,依次点击“开始→程序→Acronis→Acronistrueimagemanagement

console→Acronistrueimagemanagementconsole”项目。在ATIES控制中心窗口中点击“Install

acroniscomponetstoaremote

computer”选项,进入到“远程安装向导”对话框,点击“NEXT”按钮后,选中“Registered

components”单选项,在接下来的“程序选择”对话框中列出两个程序组件:Acronistrueimageagent和Acronis

trueimageenterpriseserver。这里笔者要为服务器A安装代理程序,因此选择“Acronistrueimage

agent”项目如图2,然后进入到“登录信息”对话框。(图2)

图2

在“Computer”栏中输入服务器A的IP地址(图3),如“192168112”,也可以点击“Browse”按钮,在计算机浏览框中找到服

务器A,然后在“Username”和“Password”栏中分别输入服务器A的管理员账号名和密码,如“lw”账号。这里笔者建议选中“Allow

torebootremotecomputer

automatically”选项,因为代理程序远程安装后,必须重新启动系统才能生效。最后点击“Proceed”按钮,开始为服务器A远程安装代理程

序。安装完成后,服务器A将自动重新启动系统。(图3)

图3

三、让文件夹共享

这里笔者要在网管机器B中远程备份服务器A的磁盘分区,并将“镜像文件”存储在服务器A的“S_bak”共享文件夹中。这里注意服务器A使用的

是NTFS文件系统,因此共享文件夹的访问权限不但受到“共享权限”限制,还受到NTFS文件系统的访问权限限制。我们首先要在服务器A上对

“S_bak”共享文件夹访问权限进行合理设置。

1设置共享权限

在服务器A的资源管理器中,右键点击“S_bak”共享文件夹,选择“属性”,切换到“共享”标签页,点击“权限”按钮,弹出“S_bak的权

限”设置对话框,点击“添加”按钮,将“lw”账号添加到“组或用户名称”列表框内,并且还要给该账号赋予“完全控制权限”如图4,最后点击“确定”按

钮,完成共享权限设置。(图4)

图4

2NTFS访问权限设置

以上设置的只是共享访问权限,毕竟“S_bak”共享文件夹是受“共享访问权限”和“NTFS访问权限”双重制约的。如果NTFS文件系统不允许“lw”账号访问共享,也是不行的。

切换到“安全”标签页后,首先将“lw”账号添加到“组或用户名称”列表框中,接下来还要为该账号设置访问权限。选中“lw”账号后,在“lw的权限”列表框中选中“读取和运行、列出文件夹目录、读取、修改和写入”项目,最后点击“确定”按钮。(图5)

图5

经过以上操作后,就完成了“S_bak”共享文件夹访问权限的设置。这里要注意以上操作是在服务器A进行的。

四、远程备份从此简单

到此为止,远程备份的准备工作就全部完成了,下面就可以在网管机器B中对服务器A的磁盘分区进行远程备份。

1连接服务器A

在网管机器B的ATIES控制中心窗口中,点击“Connecttoaremote

computer”项目,弹出“远程连接计算机”对话框,在“Computer”栏中输入服务器A的IP地址“192168112”,点击

“Options”按钮后,在“User

name”和“Password”栏中分别输入服务器A的管理员账号名“lw”和账号密码如图6,点击“OK”按钮后,进入到“Pickatask

fortheremotecomputer”窗口,说明已经成功连接到服务器A如图7。(图6)(图7)

图6

图7

2第一次完全手工备份

下面就开始实施远程手工备份服务器A磁盘分区。点击“Backup”选项,弹出“创建镜像文件向导”对话框,点击“NEXT”按钮后,在接下来

的对话框中列出服务器A的磁盘分区。这里笔者以“C盘”分区为例,选中“C盘分区”项目,点击“NEXT”按钮后,为镜像文件指定存储位置(图8)。

图8

在“网络计算机”对话框中找到服务器A,弹出登录对话框窗口,输入服务器A的管理员账号后,进入到“S_bak”共享文件夹,接着为镜像文件起个名字,如

“servertib”。下面选择“镜像模式”,这是笔者第一次为服务器A的C盘分区进行备份,因此要选择完全备份方式,选中“Createthe

fullbackupimage

archive”选项,点击“NEXT”按钮后,要为镜像文件设置一个复杂的“保护密码”,防止有人非法窃取。接着还要为镜像文件设置分卷方式、压缩率

等,如果没有特殊要求,使用默认值即可。最后点击“Proceed”按钮,就开始远程备份服务器A的C盘分区。备份成功后,就会在服务器A的

“S_bak”共享文件夹中生成一个名为“rtjtib”的镜像文件。(图9)

图9

3计划增量备份

以上完成了第一次手工备份,但以后每次都要手工备份是非常麻烦的,ATIES提供了“计划任务”功能,利用它创建备份任务,可以轻松完成自动备份。

在网管机器B的ATIES控制中心窗口中,点击下方的“Showtasks”选项,弹出“计划任务向导”对话框,计划备份向导的操作过程和手工备份向导基本相似,只是多出“备份时间间隔”参数的设置。(图9)

还是以备份服务器A的C盘分区为例,在“计划任务向导”对话框中选中服务器A的C盘分区,指定好镜像文件的存储位置“S_bak共享文件夹中

rtjtib”。这里要注意:“镜像模式”要选中“Createdifferentialbackup

archive”项目,也就是增量备份。(图10)

图10

接着指定好分卷方式、压缩率等,然后进入到“备份时间间隔”参数设置对话框。这里笔者每天都要对服务器A的C盘分区进行远程增量备份,选中“Daily”

单选项,点击“NEXT”按钮后,在“Start

time”栏中设置每天开始计划备份的时间;然后进入到“用户信息”对话框,在这里输入要使用的服务器A的管理员账号密码,最后点击“Finish”按

钮,完成备份任务的创建。这样一来,网管机器B每天都可以自动对服务器A的C盘分区进行远程增量备份,免去了手工备份的麻烦。(图11)

图11

总结:利用ATIES实现磁盘分区的远程备份的确能方便网管对备份文件的统一管理。在设置过程中一定注意以下两点:一、要正确设置服务器A的网络防火墙和

共享文件夹的访问权限,这样在网络中进行远程备份的人员才能访问服务器A,保证备份文件被正常存储在共享文件夹中;二、远程备份人员要拥有服务器A的管理

员访问权限,否则就无法正常安装代理程序和远程连接服务器A

mysql如何实时备份?

MYSQL数据如何实时备份

依次单击:开始--程序--MicrosoftSQLServer--企业管理器--SQLServer组--管理--数据库维护计划

在右侧空白处右键单击,新建维护计划--勾选要备份的数据库--下一步

指定数据库备份计划--调度--单击更改--设置备份的时间,备份周期--下一步

每日频率即是每天什么时间开始进行备份

发生频率即是执行的周期

指定备份磁盘目录--修改使用此目录的路径作为备份数据库的存放路径勾选删除早于此时间的文件,我这里选择一周,即是数据库备份文件把一周前的进行删除

给此任务计划填写一个名字:back2单击完成,就可以在数据库维护计划中看到刚才新建的计划

注意事项

一定要开启sqlserveragent服务

怎样把服务器上的数据备份到本地机?

打开远程服务器---打开数据转换服务---选择本地包,右键---新建包---新窗口中“任务”下面点“复制sqlserver对象任务”图标(不知道图标的话,把鼠标放到图标上就会有提示)----选择好源服务器(当然是远程服务器了),目的服务器(当然是你本地机器了),以及需要传输的数据库(这些设置一看就会明白的)---保存包---立即执行包----复制数据完毕,稍微等片刻就会在本地机器上看到你要的数据库了

orecal如何进行远程备份?

你是要实时的热备呢,还是定时备份呢,

实时热备的话最好是选取一些软件比如UPM等,

定时备份的话那就简单一些了,再对方的机器上开FTP,定时作备份后再上传到远程的主机就好了。

Oracle数据导入导出imp/exp命令

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUSEXE或者DOS(命令行)中执行,

DOS中可以执行时由于在oracle8i中安装目录ora81BIN被设置为全局路径,

该目录下有EXPEXE与IMPEXE文件被用来执行导入导出。

oracle用java编写,SQLPLUSEXE、EXPEXE、IMPEXE这两个文件有可能是被包装后的类文件。

SQLPLUSEXE调用EXPEXE、IMPEXE所包裹的类,完成导入导出功能。

下面介绍的是导入导出的实例。

数据导出:

1将数据库TEST完全导出,用户名system密码manager导出到D:daochudmp中

expsystem/manager@TESTfile=d:daochudmpfull=y

2将数据库中system用户与sys用户的表导出

expsystem/manager@TESTfile=d:daochudmpowner=(system,sys)

3将数据库中的表inner_notify、notify_staff_relat导出

expaichannel/aichannel@TESTDB2file=d:datanewsmgntdmptables=(inner_notify,notify_staff_relat)

4将数据库中的表table1中的字段filed1以"00"打头的数据导出

expsystem/manager@TESTfile=d:daochudmptables=(table1)query="wherefiled1like'00%'"

上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。

也可以在上面命令后面加上compress=y来实现。

数据的导入

1将D:daochudmp中的数据导入TEST数据库中。

impsystem/manager@TESTfile=d:daochudmp

impaichannel/aichannel@HUSTfull=yfile=d:datanewsmgntdmpignore=y

上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上ignore=y就可以了。

2将d:daochudmp中的表table1导入

impsystem/manager@TESTfile=d:daochudmptables=(table1)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

注意:

操作者要有足够的权限,权限不够它会提示。

数据库时可以连上的。可以用tnspingTEST来获得数据库TEST能否连上。

附录一:

给用户增加导入数据权限的操作

第一,启动sqlpuls

第二,以system/manager登陆

第三,createuser用户名IDENTIFIEDBY密码(如果已经创建过用户,这步可以省略)

第四,GRANTCREATEUSER,DROPUSER,ALTERUSER,CREATEANYVIEW,

DROPANYVIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,

DBA,CONNECT,RESOURCE,CREATESESSIONTO用户名字

第五,运行-cmd-进入dmp文件所在的目录,

impuserid=system/managerfull=yfile=dmp

或者impuserid=system/managerfull=yfile=filenamedmp

执行示例:

F:WorkOracle_Databackup>impuserid=test/testfull=yfile=inner_notifydmp

屏幕显示

Import:Release81700-Productionon星期四2月1616:50:052006

(c)Copyright2000OracleCorporationAllrightsreserved

连接到:Oracle8iEnterpriseEditionRelease81700-Production

WiththePartitioningoption

JServerRelease81700-Production

经由常规路径导出由EXPORT:V080107创建的文件

已经完成ZHS16GBK字符集和ZHS16GBKNCHAR字符集中的导入

导出服务器使用UTF8NCHAR字符集(可能的ncharset转换)

正在将AICHANNEL的对象导入到AICHANNEL

正在导入表"INNER_NOTIFY"4行被导入

准备启用约束条件

成功终止导入,但出现警告。

附录二:

Oracle不允许直接改变表的拥有者,利用Export/Import可以达到这一目的

先建立import9par,

然后,使用时命令如下:impparfile=/filepath/import9par

例import9par内容如下:

FROMUSER=TGPMS

TOUSER=TGPMS2(注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)

ROWS=Y

INDEXES=Y

GRANTS=Y

CONSTRAINTS=Y

BUFFER=409600

file==/backup/ctgpc_20030623dmp

log==/backup/import_20030623log

  不一定需要自己开发。Shard层可以位于:

  1、DAO层:一般需要自行开发,可以灵活定制

  2、ORM层:比如guzz、Hibernate Shard

  3、JDBC API层:比较难,有一个商业产品dbShards

  4、应用服务器与数据库之间通过代理实现:MySQL Proxy、amoeba

  一 背景

  当数据库中的数据量越来越大时,不论是读还是写,压力都会变得越来越大。采用MySQL

Replication多master多slave方案,在上层做负载均衡,虽然能够一定程度上缓解压力。但是当一张表中的数据变得非常庞大时,压力还是

非常大的。试想,如果一张表中的数据量达到了千万甚至上亿级别的时候,不管是建索引,优化缓存等,都会面临巨大的性能压力。

  二 定义

  数据sharding,也称作数据切分,或分区。是指通过某种条件,把同一个数据库中的数据分散到多个数据库或多台机器上,以减小单台机器压力。

  三 分类

  数据分区根据切分规则,可以分为两类:

  1、垂直切分

  数据的垂直切分,也可以称之为纵向切分。将数据库想象成为由很多个一大块一大块的“数据块”(表)组成,我们垂直的将这些“数据块”切开,然后将他们分散

到多台数据库主机上面。这样的切分方法就是一个垂直(纵向)的数据切分。以表为单位,把不同的表分散到不同的数据库或主机上。规则简单,实施方便,适合业

务之间耦合度低的系统。

  Sharding详解" title="MySQL Sharding详解" height="373" width="553">

  垂直切分的优点

  (1)数据库的拆分简单明了,拆分规则明确;

  (2)应用程序模块清晰明确,整合容易;

  (3)数据维护方便易行,容易定位;

  垂直切分的缺点

  (1)部分表关联无法在数据库级别完成,需要在程序中完成;

  (2)对于访问极其频繁且数据量超大的表仍然存在性能平静,不一定能满足要求;

  (3)事务处理相对更为复杂;

  (4) 切分达到一定程度之后,扩展性会遇到限制;

  (5)过读切分可能会带来系统过渡复杂而难以维护。

  2、水平切分

  一般来说,简单的水平切分主要是将某个访问极其平凡的表再按照某个字段的某种规则来分散到多个表之中,每个表中包含一部分数据。以行为单位,将同一个表中的数据按照某种条件拆分到不同的数据库或主机上。相对复杂,适合单表巨大的系统。

  Sharding详解" title="MySQL Sharding详解" height="372" width="553">

  水平切分的优点

  (1)表关联基本能够在数据库端全部完成;

  (2)不会存在某些超大型数据量和高负载的表遇到瓶颈的问题;

  (3)应用程序端整体架构改动相对较少;

  (4)事务处理相对简单;

  (5)只要切分规则能够定义好,基本上较难遇到扩展性限制;

  水平切分的缺点

  (1)切分规则相对更为复杂,很难抽象出一个能够满足整个数据库的切分规则;

  (2)后期数据的维护难度有所增加,人为手工定位数据更困难;

  (3)应用系统各模块耦合度较高,可能会对后面数据的迁移拆分造成一定的困难。

  3、联合切分

  实际的应用场景中,除了那些负载并不是太大,业务逻辑也相对较简单的系统可以通过上面两种切分方法之一来解决扩展性问题之外,恐怕其他大部分业务逻辑稍微

复杂一点,系统负载大一些的系统,都无法通过上面任何一种数据的切分方法来实现较好的扩展性,而需要将上述两种切分方法结合使用,不同的场景使用不同的切

分方法。

  Sharding详解" title="MySQL Sharding详解" height="480" width="342">

  联合切分的优点

  (1)可以充分利用垂直切分和水平切分各自的优势而避免各自的缺陷;

  (2)让系统扩展性得到最大化提升;

  联合切分的缺点

  (1)数据库系统架构比较复杂,维护难度更大;

  (2)应用程序架构也相对更复杂;

  四 实现方案

  现在 Sharding 相关的软件实现其实不少,基于数据库层、DAO 层、不同语言下也都不乏案例。限于篇幅,此处只作一下简要的介绍。

  1、 Mysql Proxy + HASCALE

  一套比较有潜力的方案。其中MySQL Proxy 是用 Lua 脚本实现的,介于客户端与服务器端之间,扮演 Proxy

的角色,提供查询分析、失败接管、查询过滤、调整等功能。目前的 06 版本还做不到读、写分离。HSCALE 则是针对 MySQL Proxy 插件,也是用

Lua 实现的,对 Sharding 过程简化了许多。需要指出的是,MySQL Proxy 与 HSCALE

各自会带来一定的开销,但这个开销与集中式数据处理方式单条查询的开销还是要小的。

  MySQLProxy是MySQL官方提供的一个数据库代理层产品,和MySQLServer一样,同样是一个基于GPL开源协议的开源产品。可用来监视、分析或者传输他们之间的通讯信息。他的灵活性允许你最大限度的使用它,目前具备的功能主要有连接路由,Query分析,Query过滤和修改,负载均衡,以及基本的HA机制等。

  实际上,MySQLProxy本身并不具有上述所有的这些功能,而是提供了实现上述功能的基础。要实现这些功能,还需要通过我们自行编写LUA脚本来实现。

  MySQLProxy实际上是在客户端请求与MySQLServer之间建立了一个连接池。所有客户端请求都是发向MySQLProxy,然后经由MySQLProxy进行相应的分析,判断出是读操作还是写操作,分发至对应的MySQLServer上。对于多节点Slave集群,也可以起做到负载均衡的效果。以下是MySQLProxy的基本架构图:

  Sharding详解" title="MySQL Sharding详解" height="480" width="420">

  通过上面的架构简图,我们可以很清晰的看出MySQLProxy在实际应用中所处的位置,以及能做的基本事情。关于MySQLProxy更为详细的实施细则在MySQL官方文档中有非常详细的介绍和示例,感兴趣的读者朋友可以直接从MySQL官方网站免费下载或者在线阅读,我这里就不累述浪费纸张了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 无法远程连接到服务器怎么回事?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情