GVKun编程网logo

MSSQL 数据库备份和还原的几种方法 图文教程(sql数据库备份还原步骤)

2

想了解MSSQL数据库备份和还原的几种方法图文教程的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于sql数据库备份还原步骤的相关问题,此外,我们还将为您介绍关于AdobeInDesign如何

想了解MSSQL 数据库备份和还原的几种方法 图文教程的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于sql数据库备份还原步骤的相关问题,此外,我们还将为您介绍关于Adobe InDesign如何安装并破解【图文教程】、Android apk反编译基础(apktoos)图文教程、CentOS克隆机器步骤,图文教程、Cocos2d-x PluginX的使用(图文教程)的新知识。

本文目录一览:

MSSQL 数据库备份和还原的几种方法 图文教程(sql数据库备份还原步骤)

MSSQL 数据库备份和还原的几种方法 图文教程(sql数据库备份还原步骤)

sql SERVER 企业管理器,展开sql SERVER组LOCAL下的数据库,右键点击你要备份的数据库,在弹出的菜单中选择所有任务下的备份数据库,弹出备份数据库对话框:点击添加按钮,填写备份文件的路径和文件名,点击确定添加备份文件,点击备份对话框上的备份,开始进行备份。

sql SERVER组下的管理节点,右键单击数据库维护计划,选择新建维护计划。在弹出的欢迎对话框中选择下一步,然后显示如下对话框:

默认所有选项,下一步。在当前对话框中可以选择是否检查数据库的完整性,这里我们默认就可以进行下一步就行了。对话框入图所示:

修改备份数据库的时间,单击下一步,入下图:在这里,我们可以选择“使用此目录”为备份指定路径,选中“删除早于此时间的文件”可以指定备份文件的保留时间。

一个名字,点击完成后,数据库会在你指定的时间进行备份。关于数据库维护计划的更多知识请查看其它相关资料。
三、备份数据库文件。打开sql SERVER 企业管理器,展开sql SERVER组LOCAL下的数据库,右键点击你要备份的数据库,选择属性。在弹出的对话框中选择数据文件,在这里显示了数据文件的路径,如下图:
打开sql SERVER 服务管理器,将sql SERVER 停止。然后打开我的电脑,找到数据文件路径,将其拷贝出来进行备份(注意同时备份.LDF文件)。最后开启sql SERVER服务

数据库备份文件(适用于用企业管理器备份的数据库)。打开sql SERVER 企业管理器,展开sql SERVER组LOCAL下的数据库,右键点击你要还原的数据库,选择所有任务下的还原数据库,弹出如下对话框:选择从设备,点击选择设备,为还原添加备份文件路径,然后进行确定还原。

文件。在企业管理器中对数据库节点右键单击,选择所有任务下的附加数据库,弹出附加数据库对话框。如下图: 选择一个你之前拷贝的数据文件,然后点击确定即可附加成功(注:如果数据库已经存在,请删除数据库后在对其进行附加)。

Adobe InDesign如何安装并破解【图文教程】

Adobe InDesign如何安装并破解【图文教程】

原标题:"Adobe InDesign如何安装并破解"最新互联网知识经验分享。 - 来源:小编 - 编辑:库库。

我们进行排版设计的时候,最经常用的就是InDesign软件了。那么如何安装破解InDesign软件呢?下面小编给大家分享一下。

工具/材料

InDesign安装包

操作方法

01 首先打开InDesign的安装包,点击里面的Set-up.exe安装程序,如下图所示

02 接下来会弹出Adobe的登录界面,我们输入Adobe的登录账户和密码登录即可,没有账户的需要先注册一个,如下图所示

03 然后勾选同意协议复选框,然后点击继续按钮,如下图所示

04 接下来InDesign就会自动的进行安装了,如下图所示,安装差不多有一二十分钟左右

05 安装完毕后点击InDesign的启动程序,默认会进入登录界面,直接点击登录按钮即可,如下图所示

06 接下来会进入InDesign的主界面,右上角会默认显示只有7天的试用期,如下图所示

07 回到桌面点击InDesign的注册工具,如下图所示,这个工具一般会和安装包在一起

08 接下来会弹出注册向导界面,我们直接点击Install按钮,注册程序会自动注册完成,如下图所示

09 最后注册完毕在进入InDesign主界面,我们就会看到刚才试用期的提示已经去除了,如下图所示

总结

以上是小编为你收集整理的Adobe InDesign如何安装并破解【图文教程】全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Android apk反编译基础(apktoos)图文教程

Android apk反编译基础(apktoos)图文教程

本文主要介绍了Android apk反编译基础,使用的工具是apktoos,我们将用图文的方式说明apktoos工具的使用方式,你可以参考这个方法反编译其它APK试试看了

很久有写过一个广工图书馆主页一个类爬虫的demo(因为没接口,只能扒取静态网页),实现一些图书馆系统的一些功能。但最近发现图书馆系统在html页面上做了手脚,一页html页面中嵌入了几千行的注释,并有了自己的App,应该是为了增加扒取的流量成本来防止别人去扒取网页,不过加注释这手段就不敢恭维了,内网访问速度还行,但外网访问的话体验很差的。 

 如下图:一堆注释,导致一个网页要2MB 

 

主页上的APP,必然是用了图书馆的后台接口和服务器交互的,从而想试试用反编译的手段来看看APP使用了什么接口。(另外更简单可以通过tcpdump来给Android手机抓包分析其接口,再用Wireshark来分析tcp包,不过你想要知道全部接口的话,可能需要一个个接口去调用,会比较麻烦,采用反编译,可能集中在一个类中找到这些接口)。

 

首先要准备的工具:(了解更多反编译工具可以去看雪论坛下载或者学习-Link)

APKTool是GOOGLE提供的APK编译工具,需要JAVA运行环境。可以对APK进行反编译,使用它可以将其反编译成非常接近打包前的原始格式。逆向AndroidManifest.xml、资源文件 resources.arsc以及将dex文件反编译成可以调试的smali文件。修改后,可以将其编译回apk文件。APKTool也可以用来汉化Android软件然后重新打包发布。 
官方:http://code.google.com/p/android-apktool/
 

解压缩APKTool,并把要反编译的APK放入目录中

   


反编译:

通过CMD进入上面的目录,执行命令: apktool decode ZhaoBenShu.apk outdir  

稍等片刻完成反编译,反编译后的文件会在outdir目录下。

    


 

    ---outdir目录结构

    


res :资源文件,跟adnroid工程目录下的res基本一样,各种UI图片  XML布局文件  values xml文件(多了一个public.xml,有各个资源的id号(R.java中的id))
smail:这个是重点文件夹,里面都是smail格式文件,是Dalvik虚拟机执行的操作码(Dalvik opcodes),这些操作吗有自己的语法,如果有学过JNI的话, 这些语法还是比较容易看懂和理解的。AndroidManifest.xml:Android工程下的AndroidManifest.xml
apktool.yml:用于重打包。

 

smail语法:(全部语法请link)

smail中的数据类型签名跟java中的是一样的,如下。

 

B---byteC---charD---doubleF---floatI---intJ---longS---shortV---voidZ---boolean[XXX---arrayLxxx/yyy---object

 

    smail代码例子:

    

    

 初看smail文件,可能会觉得有一些凌乱。不过只要把几种语法弄懂了,就可以很好地阅读smail文件。
 smail比较常用语法 ( 非全部)分为: 赋值,取值,函数调用,if语句,返回值等。

赋值取值:


例子:
 iget-object v6, p0, Lcom/zbsh/code/clas/ClassSystem$9;->val$vBarCodes:Ljava/util/ArrayList;

分析:

iget个取值操作,i=instance,是用来instance filed(实例变量),object是类的意思。 v6是本地寄存器,p0在这里是代表this(在非static函数正代表this,在static函数中代表第一个参数)。Lcom/zbsh/code/clas/ClassSystem是表示包路径为 Lcom/zbsh/code/clas下的ClassSystem类,->相当于C/C++的箭头操作符,后面是类中的变量或者方法vBarCodes是ClassSystem中的一个变量,Ljava/util/ArrayList是vBarCodes这个变量的类型 (是java中类的签名)

作用:

把ClassSystem中vBarCodes的值存放在寄存器v6中,vBarCodes的类型必须是对象,且是实例变量非静态变量。
其中object可以是替换成基本数据类型:iget-boolean   iget-byte  iget-char   iget-short等等。

同样的

sget- [type]用来获取static变量。(少了一个p0,因为静态变量是没有this的)

aget-[type]用来获取array类型。

[x]get vx, vy,把寄存器vy中的值赋给vx。

赋值:

同样都有以下几种:
iput-[type]
sput-[type]
aput-[type]

也支持寄存器和寄存器之间的赋值,寄存器和变量之间的赋值。

函数调用

 invoke-direct 调用private函数
invoke-super 调用父类函数
invoke-static 调用静态函数
invoke-virtual 用于调用protected或public函数(相当于C++的虚函数,java的重载函数,只有protect和public能够重载)
还有一种比较特殊的:invoke-xxxxx/range:参数多于5个的时候,要加/rang


 例子:

invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

 v4是this,代表 Ljava/lang/String的一个实例,v1是函数的第一个参数,在这里是调用放在V4寄存器中类型为Ljava/lang/String的实例的equal ()方法,并传入参数v1,返回的结果是Z类型,也就是boolean类型。

如果是invoke-static{v4, v1}, 不同遇在于invoke-virtual {v4, v1}的是v4不是this,而是第一个参数。v1是第二个参数,所调用的方法需要两个参数。

 

返回值:

获取返回值:

move-result vx :把上一个方法返回的值,存在寄存器 vx中。

返回返回值:

return-void   没返回。
return vx       返回寄存器中vx的值  。

 

if语句:

if-eq vx,vy,target:eq:equal  如果vx==xy 跳转到target目标代码,否则执行顺序执行下一句代码
if-ne vx,vy,target:nq :not equal  如果vx!=xy 跳转到target目标代码,否则执行顺序执行下一句代码       
if-eqz vx,target:eqz : equal zero  如果vx==0 跳转到target目标代码,否则执行顺序执行下一句代码     
if-nez vx,target:nez :not equal zero   如果vx!=0 跳转到target目标代码,否则执行顺序执行下一句代码    

smail,找接口:
   

以搜索接口为例子:
根据文件命名找到GropZbshFind.smali这个文件,应该就是搜索Activity。

在其中有一段代码:


复制代码
代码如下:

# virtual methods
.method public onCreate(Landroid/os/Bundle;)V
.locals 3
.parameter "savedInstanceState"

.prologue
.line 13
invoke-super {p0, p1}, Lcom/zbsh/code/thrd/GroupActivity;->onCreate(Landroid/os/Bundle;)V

.line 14
const-class v0, Lcom/zbsh/code/ZbshFindMain;

invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;

move-result-object v0

new-instance v1, Landroid/content/Intent;

const-class v2, Lcom/zbsh/code/ZbshFindMain;

invoke-direct {v1, p0, v2}, Landroid/content/Intent;->(Landroid/content/Context;Ljava/lang/Class;)V

invoke-virtual {p0, v0, v1}, Lcom/zbsh/code/GropZbshFind;->startChildActivity(Ljava/lang/String;Landroid/content/Intent;)V

.line 15
return-void
.end method

 

很明显是通过startActivity来启动ZbshFindMain这个Activity,

在ZbshFindMain中找到Onclick方法。


复制代码
代码如下:

# virtual methods
.method public onClick(Landroid/view/View;)V
.........省略一坨代码...........
iget-object v0, v5, Lcom/zbsh/code/clas/ClassSystem;->ipAddress:Ljava/lang/String;
    .line 199
.local v0, ipAddress:Ljava/lang/String;
new-instance v5, Ljava/lang/StringBuilder;
    invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
    move-result-object v6
    invoke-direct {v5, v6}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V
    const-string v6, "Find/GetBookList.aspx?a="
    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v5
    const-string v6, "gdut"
    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v5
    const-string v6, "&b="
    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v6
    iget-object v5, p0, Lcom/zbsh/code/ZbshFindMain$4;->this$0:Lcom/zbsh/code/ZbshFindMain;
    invoke-virtual {v5}, Lcom/zbsh/code/ZbshFindMain;->getApplication()Landroid/app/Application;
    move-result-object v5
    check-cast v5, Lcom/zbsh/code/clas/ApplZbsh;
    iget-object v5, v5, Lcom/zbsh/code/clas/ApplZbsh;->iSystem:Lcom/zbsh/code/clas/ClassSystem;
    iget-object v5, v5, Lcom/zbsh/code/clas/ClassSystem;->searchType:Ljava/lang/String;
    invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v5
    const-string v6, "&c="
    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v6
    iget-object v5, p0, Lcom/zbsh/code/ZbshFindMain$4;->this$0:Lcom/zbsh/code/ZbshFindMain;
    invoke-virtual {v5}, Lcom/zbsh/code/ZbshFindMain;->getApplication()Landroid/app/Application;
    move-result-object v5
    check-cast v5, Lcom/zbsh/code/clas/ApplZbsh;
    iget-object v5, v5, Lcom/zbsh/code/clas/ApplZbsh;->iSystem:Lcom/zbsh/code/clas/ClassSystem;
    iget-object v5, v5, Lcom/zbsh/code/clas/ClassSystem;->inputKeywords:Ljava/lang/String;
    invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v5
    const-string v6, "&d="
    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v5
    sget v6, Lcom/zbsh/code/clas/ClassDataParameter;->count:I
    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    move-result-object v5
    const-string v6, "&e="
    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v5
    sget v6, Lcom/zbsh/code/clas/ClassDataParameter;->page:I
    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    move-result-object v5
    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v3
    .line 201
.local v3, urlPath:Ljava/lang/String;
iget-object v5, p0, Lcom/zbsh/code/ZbshFindMain$4;->this$0:Lcom/zbsh/code/ZbshFindMain;
    invoke-virtual {v5}, Lcom/zbsh/code/ZbshFindMain;->getApplication()Landroid/app/Application;
    move-result-object v5
    check-cast v5, Lcom/zbsh/code/clas/ApplZbsh;
    iget-object v5, v5, Lcom/zbsh/code/clas/ApplZbsh;->iSystem:Lcom/zbsh/code/clas/ClassSystem;
    iget-object v6, p0, Lcom/zbsh/code/ZbshFindMain$4;->this$0:Lcom/zbsh/code/ZbshFindMain;
    iget-object v6, v6, Lcom/zbsh/code/ZbshFindMain;->mUIHandler:Landroid/os/Handler;
    invoke-virtual {v5, v0, v3, v6}, Lcom/zbsh/code/clas/ClassSystem;->GetFindOnThread(Ljava/lang/String;Ljava/lang/String;Landroid/os/Handler;)V

上面这段代码,实现的是通过StringBuilder,通过append方法,拼成一个地址出来,再调用ClassSystem;->GetFindOnThread这个方法,传入参数,进行一个异步图书搜索的任务。

 

再从ClassDataParameter.smali中找到一些定义host地址常量。


复制代码
代码如下:

.line 20
const-string v0, "http://59.41.253.11:7778/"

sput-object v0, Lcom/zbsh/code/clas/ClassDataParameter;->IPADDRESS_TEL:Ljava/lang/String;

.line 21
const-string v0, "http://222.200.98.173:7778/"

sput-object v0, Lcom/zbsh/code/clas/ClassDataParameter;->IPADDRESS_EDU:Ljava/lang/String

   

我们可以拼出图书搜索的接口是:http://222.200.98.173:7778/Find/GetBookList.aspx?a=&b=1&c=java&d=40&e=100

返回的是Json数据格式化下:


复制代码
代码如下:

{
"error": "0",
"findtotal": "1612",
"findcache": "20131124024041.htm",
"find_list": [
{
"CtrlNo": "70658",
"Isbn": "7-301-03477-6 ",
"Title": "Java教程(Internet面向对象程序设计)",
"Author": "Mary Campione",
"Edition": " ",
"Publisher": "北大版",
"PubDate": "97.12"
},
{
"CtrlNo": "70657",
"Isbn": "7-301-03476-8 ",
"Title": "java类手册",
"Author": "Patrick Chan",
"Edition": " ",
"Publisher": "北大版",
"PubDate": "97.12"
},
{
"CtrlNo": "605337",
"Isbn": "978-7-115-30271-7 ",
"Title": "Java 7基础教程= Java 7 for absolute beginners",
"Author": "(美) Jay Bryant著;李鹏, 韩智译",
"Edition": " ",
"Publisher": "人民邮电出版社",
"PubDate": "2013.01"
},
{
"CtrlNo": "604835",
"Isbn": "978-7-302-30346-6 ",
"Title": "Java改错学习法 [专著]",
"Author": "朱福喜编著",
"Edition": " ",
"Publisher": "清华大学出版社",
"PubDate": "2013"
}
]
}
    

其次:
        

还可以通过反编译更强大的用处是用来修改smali代码,再重打包apk,来破解一些收费软件,去除广告之类,或者了解一些优秀软件的实现逻辑。

CentOS克隆机器步骤,图文教程

CentOS克隆机器步骤,图文教程

在上一篇文章中,主要介绍了CentOS的装机步骤,这一篇文章主要介绍如何从一台装好的CentOS克隆出另一台机器,并且配置好网络。

首先被克隆的CentOS需要关机,

右键点击被克隆的CentOS->管理->克隆

点击下一步

选择第一个,从虚拟机的当前状态进行克隆,点击下一步

这里,选择第二个,创建完整克隆,点击下一步

设置新的虚拟机名称,点击完成

会出现克隆的进度条

克隆完毕,点击关闭

这里CentOS就克隆成功了。

克隆的新机器目前是访问不了网络的,还需要开启新机器,进行一些修改配置。

启动新机器,并且输入用户和密码,这里的用户是root用户,密码是你被克隆机器的root用户密码

进入系统后,首先要进入

1 vi /etc/udev/rules.d/70-persistent-net.rules

记下红色框中提示的信息eth1,以及标记的黄色的address,尤其是后边三段f9:26:cb

这里发现,有两段差不多的内容,我们保留后边的一段,删除前边的一段

记下我们的eth1和f9:26:cb,保存并退出

下面我们需要更改一下主机名称,

1 vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=tijun1.bg.cn
GATEWAY=192.168.11.2

最后修改我们的网卡信息

1 vi /etc/sysconfig/network-scripts/ifcfg-eth0

将原来的eth0改成eth1,将原来的HWADDR的后三段改成f9:26:cb,修改新IP

DEVICE=eth1
HWADDR=00:0C:29:f9:26:cb
TYPE=Ethernet
UUID=c9760818-b7f6-4dc7-baae-08d8abc19d8e
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR0=192.168.11.12
GATEWAY=192.168.11.2
NETMASK=192.168.11.255

保存退出

重启网络服务

service network restart

查看IP信息

ifconfig

ping百度网址

ping www.baidu.com

至此CentOS克隆完毕并配置好了网络。

如果你有疑问,可进行留言咨询。

如果本文有不足之处,请留言指教。

Cocos2d-x PluginX的使用(图文教程)

Cocos2d-x PluginX的使用(图文教程)

http://www.hudongdong.com/cocos2d/164.html

今天关于MSSQL 数据库备份和还原的几种方法 图文教程sql数据库备份还原步骤的介绍到此结束,谢谢您的阅读,有关Adobe InDesign如何安装并破解【图文教程】、Android apk反编译基础(apktoos)图文教程、CentOS克隆机器步骤,图文教程、Cocos2d-x PluginX的使用(图文教程)等更多相关知识的信息可以在本站进行查询。

本文标签: