Frequently Asked RMAN Inteview Questions
Q – 1 Explain what is Channel? How to enable the parallel backups with RMAN?
Ans- Channel is a link that RMAN requires to link to target database. This link is required when backup and recovery operations are performed and recorded.
This channel can be allocated manually or can be preconfigured by using automatic channel allocation.
The number of allocated channels determines the maximum degree of parallelism that is used during backup, restore or recovery. For example, if
you allocate 4 channels for a backup operation, 4 background processes for the operation can run concurrently.
Parallelization of backup sets allocates multiple channels and assigns files to specific channels. You can configure parallel backups by setting a PARALLELISM option of the CONFIGURE command to a value greater than 1 or by
manually allocating multiple channels.
RMAN> CONFIGURE DEVICE TYPE PARALLELISM 2 BACKUP TYPE TO COMPRESSED
BACKUPSET;
Q – 2 Tell me what is FRA? When do you use this?
Ans- A flash recovery area, a disk location in which the database can store and manage files related to backup and recovery.
Flash recovery area where you can store not only the traditional components found in a backup strategy such as control files, archived log files, and Recovery Manager (RMAN) datafile copies but also a number of other file
components such as flashback logs.
The flash recovery area simplifies backup operations, and it increases the availability of the database because many backup and recovery operations using the flash recovery area can be performed when the database is open and available to users.
Because the space in the flash recovery area is limited by the initialization parameter DB_ RECOVERY_FILE_DEST_SIZE , the Oracle database keeps track of which files are no longer needed on disk so that they can be deleted when there is not enough free space for new files.
Each time a file is deleted from the flash recovery area, a message is written to the alert log.
A message is written to the alert log in other circumstances. If no files can be deleted, and the recovery area used space is at 85 percent, a warning message is issued. When the space used is at 97 percent, a critical warning is
issued.
These warnings are recorded in the alert log file, are viewable in the data dictionary view DBA_OUTSTANDING_ALERTS , and are available to you on the main page of the EM Database Control
Q – 3 What is db_recovery_file_dest? When do you need to set this value?
Ans- db_recovery_file_dest and db_recovery_file_dest_size are used to specify the location and size of the Flash Recovery Area. These database intilization parameters help RMAN to manage the backup storage and delete the obsolete backups and the backups that have already been copied to a tape.
At the same time, it keeps as many backups on the disks a the space limits to minimize the restoration and recovery time consumed during data recovery operations.
Q – 4 How to enable the encryption for RMAN backups?
Ans- If you wish to modify your existing backup environment so that all RMAN
backups are encrypted, perform the following steps:
· Set up the Oracle Encryption Wallet
· Issue the following RMAN command:
RMAN> CONFIGURE ENCRYPTION ALGORITHM ‘AES256’; — use 256 bit encryption
RMAN> CONFIGURE ENCRYPTION FOR DATABASE ON; — encrypt backups
Q – 5 How to setup the physical stand by database with RMAN?
Ans- $ Export ORACLE_SID=TEST
$ rman target /
RMAN> show all;
Using target database controlfile instead of recovery catalog RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 1 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘I:Oracle_Backups%d_%F.rman’;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ‘I:Oracle_Backups%d_%s_%p.rman’;
CONFIGURE MAXSETSIZE TO UNLIMITED;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘E:ORACLEORA92DATABASESNCFTEST.ORA’;
2. Backup the current production database to create a standby database: RMAN> backup database include current controlfile for standby plus archivelog;
3. Manually copy the backup sets from I:Oracle_Backups on the production server to I:Oracle_Backups on the DR Server (location of backups must match on both production and DR).
4. On the DR Server start up the TEST database in nomount mode:
$ set ORACLE_SID=TEST
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup nomount
SQL> exit
5. Create the standby database using RMAN (This assumes the database file structures will be identical on both servers):
$ RMAN target ‘sys/fluffy@STTEST’ auxiliary /
RMAN> duplicate target database for standby nofilenamecheck dorecover;
6. Once the DR database is created; you will need to manually add a tempfile:
SQL> alter database open read only;
SQL> alter tablespace temp add tempfile ‘F:Oracle-DatabasesTESTTEMP01.DBF’ size 500M;
7. Put the DR database into managed standby mode:
SQL> shutdown immediate
SQL> startup nomount
SQL> alter database mount standby database;
SQL> alter database recover managed standby database disconnect;
8. On the production database switch logs to initiate replication:
SQL> alter system switch logfile;
The configuration of Dataguard is now complete.
Q – 6 What is auxiliary channel in RMAN? When do you need this?
Ans- An auxiliary channel is a link to auxiliary instance. If you do not have automatic channels configured, then before issuing the DUPLICATE command, manually allocate at least one auxiliary channel within the same RUN command.
When a Duplicate Database created or tablespace point in time recovery is performed Auxiliary database is used. this database can either on the same host or a different host.
RUN
{
ALLOCATE AUXILIARY CHANNEL ch1 DEVICE TYPE sbt;
ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;
ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK;
ALLOCATE AUXILIARY CHANNEL aux3 DEVICE TYPE DISK;
.
.
.
DUPLICATE TARGET DATABASE TO dupdb;
}
Q – 7 How to generate the begin backup script?
Ans- SQL>set head off
SQL>spool beginbackup.sql
SQL>select ‘alter tablespace ‘ tablespace_name ‘ begin backup;’ from dba_tablespaces;
SQL>spool off
This will create file beginbackup.sql with entry for all tablespaces, remove any unnecessary lines & then execute this script into SQL like
SQL>@beginbackup.sql
(Once you execute this script this will put all tablespaces in to begin backup mode)
Now create backup of your control file in Human Readable format like
alter database backup controlfile to trace as ‘/some/path’;
You can reuse it by removing comment at beginning & replace them with connect / as sysdba
Then Copy all your datafiles, redo logs and control file from your database server to backup location.
After datafiles are copied don’t forget to end backup for all tablespace
Here is the scripts
SQL>set head off
SQL>spool endbackup.sql
SQL>select ‘alter tablespace ‘ tablespace_name ‘ end backup;’ from dba_tablespaces;
SQL>spool off
This will create file endbackup.sql with entry for all tablespaces, remove any unnecessary lines & then execute this script into SQL like
SQL>@endbackup.sql
(Once you execute this script this will put all tablespaces in to end backup mode)
Q – 8 Explain the steps required to enable the RMAN backup for a target database?
Ans– 1. $ rman target /
2. Configure the persistent parameter of RMAN eg :
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 DAYS;
old RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 DAYS;
new RMAN configuration parameters are successfully store
3. Script to take backup
RMAN> run {
BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
DELETE NOPROMPT OBSOLETE;
CROSSCHECK BACKUP;
}
Q – 9 Explain the steps for recovery of missing data file?
Ans- Connect to RMAN and make the affected Tablespace offline immediate.
SQL> !rman target /
RMAN> sql ‘ALTER TABLESPACE DATA OFFLINE IMMEDIATE’;
Perform Restore and Recover of The tablespace.
RMAN> RESTORE TABLESPACE DATA;
RMAN> RECOVER TABLESPACE DATA;
Make the status online of the tablespace.
RMAN> sql ‘ALTER TABLESPACE DATA ONLINE’;
In this case oracle at first create and empty datafile and then apply all archived redo logs and online redo logs on the tablespace up to the current time.
Alternate way without using RMAN :
SQL> ALTER DATABASE CREATE DATAFILE ‘c:oracleoradatarheacc_capture SIZE 2048m AS datafile_file51_spec;
Determine whether you entered the correct filename. If you did, then check to see whether the log is missing from the operating system. If it is missing, and you have a backup, then restore the backup and apply the log. If you do not have a backup, then if possible perform incomplete recovery up to the point of the missing log.
Q – 10 What is backup set in RMAN?
Ans- RMAN can also store its backups in an RMAN-exclusive format which is called backup set. A backup set is a collection of backup pieces, each of which may contain one or more datafile backups.
Q – 11 What is the advantage of RMAN utility?
Ans- Advantage over tradition backup system:
1). copies only the filled blocks i.e. even if 1000 blocks is allocated to datafile but 500 are filled with data then RMAN will only create a backup for that 500 filled blocks.
2). incremental and accumulative backup.
3). catalog and no catalog option.
4). detection of corrupted blocks during backup;
5). can create and store the backup and recover scripts.
6). increase performance through automatic parallelization( allocating channels), less redo generation.
Q – 12 What are RTO, MTBF, and MTTR?
Ans- RTO: Recovery Time objective-is the maximum amount of time that the database can be unavailable and still stasfy SLA’s
MTBF (Meant tiem Between Failure)-
MTTR (Mean tie to recover)- fast recovery solutions
Q – 13 Tell me can a schema be restored in oracle 9i RMAN when the schema having numerous table spaces?
Ans- RMAN gives the command to find all the tablespaces and hence the datafiles belonging to different schemas as:REPORT SCHEMA;This command lists all the schemas, tablespace names and the corresponding data files. After listing, we can restore the datafiles or the tablespaces corresponding to a particular schema.
Q – 14 How to verify the integrity of the image copy in RMAN environment?
Ans- Use below commands :rman> catalog datafilecopy ‘f:testsystem.dbf’;rman> backup validate check logical datafile ‘f:testsystem.dbf’;SQL> SELECT * FROM v$database_block_corruption;
Q – 15 Explain the steps to perform the point in time recovery with a backup which is taken before the resetlogs of the db?
Ans- RMAN can perform recovery of the whole database to a specified past time, SCN, or log sequence number. This type of recovery is sometimes called incomplete recovery because it does not completely use all of the available redo. Incomplete recovery of the whole database is also called database point-in-time recovery (DBPITR).1. Rman> RUN{ SET UNTIL TIME ‘Nov 15 2002 09:00:00’; # SET
UNTIL SCN 1000; # alternatively, specify SCN # SET UNTIL SEQUENCE 9923; # alternatively, specify log sequence number RESTORE DATABASE; RECOVER DATABASE;}
Q – 16 What is hot backup and what is cold backup?
Ans- Cold backup is a backup of database when datafiles are not opened. Hot backup is a backup when datafiles are opend and operational.Suppose your database is in mount stage ( not shutdown ) and you take a backup then it is also a cold backup since datafiles are not opened.
Q – 17 What is the difference between cumulative incremental and differential incremental backups?
Ans- Differential backup: This is the default type of incremental backup which backs up all blocks changed after the most recent backup at level n or lower.
Cumulative backup: Backup all blocks cahnged after the most recent backup at level n-1 or lower.
Q – 18 How to enable the autobackup for the controlfile using RMAN?
Ans- issue command at rman prompt….. RMAN> configure controlfile autobackup on;also we can configure controlfile backup format…… RMAN> configure controlfile autobackup format for device type disk to 2> ‘$HOME/BACKUP/RMAN/%F.bkp’; $HOME/BACKUP/RMAN/ this can be any desired location.
Q – 19 Tell me atleast 6 advantages of RMAN backups compare to traditional hot backups?
Ans- RMAN has the following advantages over Traditional backups:
1. Ability to perform INCREMENTAL backups
2. Ability to Recover one block of datafile
3. Ability to automatically backup CONTROLFILE and SPFILE
4. Ability to delete the older ARCHIVE REDOLOG files, with the new one’s automatically.
5. Ability to perform backup and restore with parallelism.
6. Ability to report the files needed for the backup.
7. Ability to RESTART the failed backup, without starting from beginning.
8. Much faster when compared to other TRADITIONAL backup strategies.
Q – 20 Explain the steps for recovering the full database from cold backup?
Ans- Using RMAN Open the database in mount mode;Rman> restore database Recovry not required, as we are restoring from cold backup. However we can run Rman> recover database Open database now.
Q – 21 What are the various tape backup solutions available in the market?
Ans- There are various Media Management Layer (MML) solutions available for Oracle.
1) EMC’s Legato Networker Module for Oracle
2) Symantec’s Netbackup Database Agent for Oracle
3) IBM’s Tivoli Storage Management (TSM) Database Agent
4) and others in the market.
Q – 22 How to see information about backups in RMAN?
Ans- Use this SQL to checkSQL> SELECT sid,totalwork,sofar FROM v$session_longops
WHERE sid=153;
Here give SID when back start it will show SID
Q – 23 How to install the RMAN recovery catalog?
Ans- Steps to be followed:
1) Create connection string at catalog database.
2) At catalog database, create one new user or use existing user and give that user a recovery_catalog_owner privilege.
3) Login into RMAN with connection string
a) export ORACLE_SID=
b) rman target catalog @connection string
4) rman> create catalog;
5) register database;
Q – 24 How to identify the expired, active, obsolete backups? Which RMAN command you use?
Ans- You can check by using following commandExpired Backup: List ExpiredThen use report obsolete command, it show the backup that you dont need it and after that use Delete obsolete command,It will delete the backup that you dont need it.
Q – 25 Explain when do you recommend hot backup? What are the pre-reqs?
Ans- Database must be Archivelog ModeArchive Destination must be set and LOG_ARCHIVE_START=TRUE (EARLIER VERSION BEFORE 10G)If you go through RMAN then CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION OFF; # defaultCONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/u01/oracle/autobackup/%F’;
CONFIGURE DEVICE TYPE DISK PARALLELISM 2BACKUP TYPE TO BACKUPSET; # defaultCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF;
# defaultCONFIGURE ENCRYPTION ALGORITHM ‘AES128’; # defaultCONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/u01/app/oracle/product/10.2.0/db_2/dbs/snapcf_dba.f’; # default
Q – 26 How to identify what are the all the target databases that are being backed-up with RMAN database?
Ans- You only can get information about one particular database at a time, after connecting with RMAN using target as that particular database.
Suppose there are three db A,B,C.
RMAN> connect target userA/pwd
Now whatever query you will execute will only give information about that database A only.
Q – 27 Explain where RMAN keeps information of backups if you are using RMAN without Catalog?
Ans- CATALOG vs NOCATALOGthe difference is only, who maintains the backup records like,when is the last successful backup, incremental, differential,etc.,In CATALOG mode, another database (TARGET database) stores all the information.In NOCATALOG mode, controlfile of Target database is responsible.
Q – 28 Tell me the steps involved in CANCEL based recovery from the full database from hot backup?
Ans- Startup nomount pfile=’/data01/init.ora’
run create controlfile script SQL>@create_control.sql
SQL>recover database using backup controlfile until cancel;
then after recovery SQL>alter database open resetlogs
Q – 29 Explain what is the significance of incarnation and DBID in the RMAN backups?
Ans- DBID means database id.Incunation means: Database incarnation is effectively a new “version” of the database that happens when you reset the online redo logs using “alter database open resetlogs;”.Database incarnation falls into following category Current, Parent, Ancestor and Siblingi) Current Incarnation:
The database incarnation in which the database is currently generating redo.ii) Parent Incarnation: The database incarnation from which the current incarnation branched following an OPEN RESETLOGS operation.iii) Ancestor Incarnation: The parent of the parent incarnation is an ancestor incarnation. Any parent of an ancestor incarnation is also an ancestor incarnation.iv) Sibling Incarnation: Two incarnations that share a common ancestor are sibling incarnations if neither one is an ancestor of the other.
Q – 30 Tell me what is the meaning of configure encryption algorithm in rman and why we need to set this parameter in rman configuration?
Ans- The encryption of backup sets by using one of the algorithms listed in V$RMAN_ENCRYPTION_ALGORITHMS. RMAN can transparently encrypt data written to backup sets and decrypt those backup sets when they are needed in a RESTORE operation. RMAN offers three modes of encryption: transparent, password-protected, and dual-mode.
Q – 31 How would you speed up the RMAN backup of a 500GB database?
Ans- You can use incremental backup either differential or accumalative. so you dont have to backup the whole database everytime just the changes made
Q – 32 Explain the steps for recovery with missing online redo logs?
Ans- Create pfile from spfile
Edit pfile with _allow_resetlog_currpuation=true
1) Connect / as sysdba
2) Startup
3) Recover database until cancel;
4) Alter database open resetlogs;
In RMAN restore:
RMAN> RESTORE CONTROLFILE FROM ‘[[Location]]’;
RMAN> ALTER DATABASE MOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE UNTIL TIME “[[Time]]”;
RMAN> ALTER DATABASE OPEN RESETLOGS;
Q – 33 What is the difference between obsolete RMAN backups and expired RMAN backups?
Ans- Obsolete: means the backup piece is still available,but it is no longer needed.It depends on retention policy,i,e.recovery window .
Expired: means the backup piece or backup set is not found in the backup destination.
Q – 34 How RMAN improves backup time?
Ans- Oracle database help us to reduce time for taking backup using followings
1) Oracle performs BLOCKlevel backup.
2) DBA can allocate channels which will start the backup activity in PARALLEL, but we need to ensure that not too many channels have been allocated. Number of allocated channel should not be more than number of CPU.
Q – 35 Explain the steps for changing the DBID in a cloned environment?
Ans- Note: Mount the databse $export ORACLE_SID=test$ nid target=system/managerIt will change and automaticaly generate new id and asign it to the database.
Q – 36 Tell me is it possible to specific tables when using RMAN DUPLICATE feature? If yes, how?
Ans- It is possible to use RMAN duplicate features to specific tables,with RMAN Duplicate we first create a target or duplicate single instance database and then convert the single instance database to a RAC database.
Q – 37 What is the difference between physical and logical backups?
Ans- In Oracle Logical Backup is “which is taken using either Traditional Export/Import or Latest Data Pump”. Where as Physical backup is known “when you take Physical O/s Database related Files as Backup”.
Q – 38 Explain the steps involved in SCN based recovery from the full database from hot backup?
Ans- The steps are:
1) Shutdown the database
2) Restore data files
3) Mount the database
4) Recover the database
(sql> recover database until time 2005-12-14:12:10:03 Time base)
(sql> recover database until change scn base)
5) Open the database with the resetlogs option
(sql>atler database open resetlogs)
Q – 39 Suppose you have taken a manual backup of a datafile using o/s. How RMAN will know about it?
Ans- You have to catalog that manual backup in RMAN’s repository by commandRMAN> catalog datafilecopy ‘/DB01/BACKUP/users01.dbf’;restrictions:> Accessible on disk> A complete image copy of a single file
Q – 40 How to identify the block corruption in RMAN database? How do you fix it?
Ans- First check whether the block is corrupted or not by using this commandsql>select file#, block# from v$database_block_corruption; file# block 2 507the above block is corrupted…conn to RmanTo recover the block use this command…Rman>blockrecover dataile 2 block 507;the above command recover the block 507Now, just verify it…..Rman>blockrecover corruption list;Thks..
Q – 41 What is RAID?
What is RAID0?
What is RAID1?
What is RAID 10?
Ans- RAID: It is a redundant array of independent disk
RAID0: Concatenation and stripping
RAID1: Mirroring
Q – 42 What are things which play major role in designing the backup strategy?
Ans- Cold backup: shutdown the database and copy the datafiles with the help of
O.S. command. this is simply copying of datafiles just like any other text file
copy.
Holt backup: backup process starts even though database in running. The
process to take a hot backup is
1) sql> alter database begin backup;
2) copy the datafiles.
3) after copying
sql> alter database end backup;
Begin backup clause will generate the timestamp. it’ll be used in backup
consistency i.e. when begin backup pressed, it’ll generate the timestamp. During
restore, database will restore the data from backup till that timestamp and
remaining backup will be recovered from archive log.
Q – 43 Explain the encryption options available with RMAN?
Ans- RMAN offers three encryption modes:
transparent mode,
password mode,
and dual mode
Q – 44 Explain the steps involved in TIME based recovery from the full database from hot backup?
Ans- Please share your answers.
Q – 45 List some of the RMAN catalog view names which contains the catalog information?
Ans- RC_DATABASE_INCARNATION,
RC_BACKUP_COPY_DETAILS,
RC_BACKUP_CORRUPTION,
RC_BACKUP-DATAFILE_SUMMARY to name a few
Q – 46 Tell us In catalog database, if some of the blocks are corrupted due to system crash, How will you recover?
Ans- Using RMAN BLOCK RECOVER command
Q – 47 What are the steps required to perform in $ORACLE_HOME for enabling the RMAN backups with netbackup or TSM tape library software?
Ans- To take a rman backup with TSM tape library as follows
1.Install TDPO (default path /usr/tivoli/tsm/client/oracle/)
2.Once u installed the TDPO,automatically one link is created from TDPO directory to /usr/lib. Now we need to Create soft link between OS to ORACLE_HOME ln -s /usr/lib/libiobk64. a $ORACLE_HOME/lib/libobk.a(very imporatant)
3.Uncomment and Modify tdpo.opt file which in /usr/tivoli/tsm/client/oracle/bin/tdpo.opt as followsDSMI_ORC_CONFIG /usr/tivoli/tsm/client/oracle/bin64/dsm.optDSMI_LOG /home/tmp/oracleTDPO_NODE backupTDPO_PSWDPATH /usr/tivoli/tsm/client/oracle/bin64
4.create dsm.sys file in same path and add the entriesSErvername TCPPort 1500 passwordacess prompt nodename backup enablelanfree yesTCPSERVERADDRESS
5.Create dsm.opt file add an entrySErvername 5. Then take backupRMAN>run { allocate channel t1 type ‘sbt_tape’ parms ‘ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)’; backup database include current controlfile; release channel t1; }
Q – 48 How to clone the database using RMAN software? Give brief steps? When do you use crosscheck command?
Ans- Two commands available in RMAN to clone database: 1) Duplicate 2) Restore.
Q – 49 Tell me Is it possible to take Catalog Database Backup using RMAN?
Ans- Yes, you can perform backup of catalog database using RMAN with below steps:
1. Start the RMAN with NOCATALOG option.
2. Run the recovery catalog database in ARCHIVELOG mode.
3. set the retention policy to a REDUNDANCY value greater than 1.
4. Backup the database onto two separate media(disk and tape), You can use BACKUP COPIES 2.
5. Donot use another recovery catalog as the repository for these backups.
6. configure the controlfile autoback feature to ON.
Q – 50 How to setup the RMAN tape backups?
Ans- RMAN Target / run{Allocate channel ch1 device type sbt_tape maxpiecesize 4gFormat’%D_%U_%T_%t’;sql ‘alter system switch logfile’;Backup database;backup archivelog from time ‘sysdate-7’;Backup Format ‘%D_CTLFILE_P_%U_%T_%t’ Current controlfile;release channel ch1;}This is backup script for Tivoli Backup Server