Noarchive log
Hi,
I am running 9.2.0 on hpunix for dataware house. Currently its running in archivelogmode. I am thinking to switch it to noarchivelog mode, my reasoining is that its loaded once a day and then throughout the day there are noupdates to the database. And whatever we load is there in flat filesandcan be loaded again.
Is my reasoning good enough to switch to no archive log mode.
I am not running rman.
I did used the following command
SQL> startup mount;
ORACLE instance started.
Total System Global Area 546828280 bytes
Fixed Size 737272 bytes
Variable Size 218103808 bytes
Database Buffers 327680000 bytes
Redo Buffers 307200 bytes
Database mounted.
SQL> alter database noarchivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> SELECT LOG_MODE FROM SYS.V$DATABASE;
LOG_MODE
NOARCHIVELOG
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Enabled
Archive destination /u05/oraarch/UKDW
Oldest online log sequence 86326
Current log sequence 86329
How do I delete all the existing archive log.
Regards
Raj
In addition to doing a cold backup following the load, your recovery time frame would have to allow you to restore the cold backup and to re-load whatever data was lost, which may take substantially more time than re-applying whatever archived logs would have been generated. That's a question for the business, but you could easily see that impinging on your data load window. Particularly if the data load was slower during normal business hours because other OLTP instances were using more network/ SAN/ other shared resources.
Justin
Similar Messages
-
RMAN backup in noarchived log mode
Hi,
can we take RMAN backup in noarchived log mode?
If yes, how? just run backup database command or ?
thanksYou can use RMAN to backup a database in noarchivelog mode but you need to shutdown and mount the database. e.g.:
rman target /
RMAN> shutdown immediate
RMAN> startup mount
RMAN> backup database -
Recovery issue in noarchive log
Hi,
i need recovery for a database which is running in noarchive log mode.The dbas im my org take cold backup so they donot put the db in archive log mode. Now the database needs recovery it gets mounted but doesnot open and the db server asks me to apply the archive logfile which i donot have.i have also set the allowresetlogs_corrution to true. after restoring and performing the cancel based recovery the oracle server asks me for archive logfiles.i cannot perform incomplete recovery since the logifiles have been overwritten for a very long extend.
so at this stage how can i recover the database.
please provide me the essential steps.
I was provided this issue to solve.kindly help me.......
Thanks and Reagards
Ilamparithi.A.An inconsistent backup of a NOARCHIVELOG database is useless... Worse than useless, actually, if it provides a false sense of security that the database has been backed up and the data is somewhat safe.
I'm afraid the answer is most likely that the database is gone forever. If this is particularly valuable data, Oracle Consulting does have a tool (as do the ORA-600 folks in DUDE) that can probably recover most of the data from the data files. But these are not cheap utilities-- unless this is particularly valuable data, it may be more cost effective to toss the backups, find what data you can from other sources (old backups, old exports, other databases, etc) and chalk the cost of reconstituting the rest of the data up to the cost of hiring DBAs that didn't know what they were doing.
Doug Burns has a discussion on the [http://oracledoug.com/serendipity/index.php?/archives/789-DUDE,-Wheres-My-Data.html|DUDE data unloader]
I'd strongly suggest opening a Metalink ticket just to cover your own butt here. I expect them to tell you the same thing, but it's obviously a lot easier to go to management to tell them they've lost their data or that they need to write a check with lots of 0's to get it back because Metalink said so rather than because some guy on the internet said so.
Justin -
Why we cannot take hot backup if database is in noarchive log mode
Hi,
I am aware that if database is in noarchive log mode, we cannot take hot backups and only cold backup is possible.
I would like to know the technical reason behind this restriction?
Thank You
SarayuHot backups are fuzzy backups, inconsistent, in other words, since something is always happening in the database. When you recover, you restore data files and then apply redo to make the transactions consistent. You can do a complete recovery or recover to a point in time. So where does the redo come from? That's what we call archiving redo logs. When the online redo gets full, it gets archived.
In the case of an instance crash, the redo is there in the online redo logs, so Oracle can recover automatically. Anything beyond that, having to do with storage media, is a media recovery, and requires those archived logs. So unless you have some other way to get your data back, always run in archivelog mode.
It is really important to understand the concepts. Please read the docs.
http://docs.oracle.com/cd/E11882_01/server.112/e25789/cncptdba.htm#CNCPT031
http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmintro.htm#i1005488
It may be worth your while to get a third party backup and recovery book too. -
Rman backup and restore noarchive log
Hi,
We are changing our backup tools from exp to rman. For this I am trying to do
restoration in test server of oracle db running on 9.2 noarchive log.
Step 1. Taken complete backup with rman with nocatalog and include controlfile
nput datafile fno=00008 name=D:\ORACLE\ORADATA\TOTO\TOOLS01.DBF
channel ORA_DISK_1: starting piece 1 at 09-MAR-06
channel ORA_DISK_1: finished piece 1 at 09-MAR-06
piece handle=D:\DBBACKUPS\T1.BKP comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15
Finished backup at 09-MAR-06
Step 2. Deleted database files and control files from database directory.
Step 3. Restore controlfiles
RMAN> restore controlfile from 'd:\dbbackups\t1.bkp';
Starting restore at 09-MAR-06
using channel ORA_DISK_1
channel ORA_DISK_1: restoring controlfile
channel ORA_DISK_1: restore complete
replicating controlfile
input filename=D:\ORACLE\ORADATA\TOTO\CONTROL01.CTL
output filename=D:\ORACLE\ORADATA\TOTO\CONTROL02.CTL
output filename=D:\ORACLE\ORADATA\TOTO\CONTROL03.CTL
Finished restore at 09-MAR-06
Step 3. after database mount, try to restore datafiles, which is failed
restoring datafile 00024 to D:\ORACLE\ORADATA\TOTO\DIN36\TESTUNV1.ORA
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 03/09/2006 17:24:25
ORA-19505: failed to identify file "D:\DBBACKUPS\TOTOBKP.RMAN"
ORA-27041: unable to open file
OSD-04002: unable to open file
O/S-Error: (OS 2) The system cannot find the file specified.
Why it is looking old backup totobkp.rman which is not existing on disk ? My
backup name is t1.bkp.
Will you pl tell me where I have gone wrong ? Secondly what are the correct
steps to be followed for taking cold backup and restoration.
thanks & regards
pjpOkay let us ponder this for a moment:-
DB NOARCHIVELOG
It does not matter when you take the backup of controlfile because the database is in mount state and no changes are allowed to the db ( Checkpoints etc. )
DB ARCHIVELOG
It does not matter when you take the backup of controlfile because the database is continuously writing to the archivelog's.
End result should not be significantly different as to worry about whether to take backup of control file before or after backup.
Thanks
Gopal -
Oracle 10g ASM converting noarchive log to archive log
DATABASE Details
Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for 64-bit Windows: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
Mode
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 26269
Current log sequence 26274
SQL>
TYPE :
DW Batch Process
Redo log groups
6 groups with 2 files size each 2GB Aprx. 400gb redo log generates per day
OS : WINDOWS 2008 SERVER
Current Size
SQL> select sum(bytes)/(1024*1024*1024) from v$datafile;
SUM(BYTES)/(1024*1024*1024)
1003.86945
ASM Details
SELECT GROUP_NUMBER,NAME FROM V$ASM_DISKGROUP;
GROUP_NUMBER NAME
1 KK_DATA
SQL> SELECT dg.name AS diskgroup, SUBSTR(c.instance_name,1,12) AS instance,
2 SUBSTR(c.db_name,1,12) AS dbname, SUBSTR(c.SOFTWARE_VERSION,1,12) AS software,
3 SUBSTR(c.COMPATIBLE_VERSION,1,12) AS compatible
4 FROM V$ASM_DISKGROUP dg, V$ASM_CLIENT c
5 WHERE dg.group_number = c.group_number;
DISKGROUP INSTANCE DBNAME SOFTWARE COMPATIBLE
KK_DATA +asm KK 10.2.0.4.0 10.2.0.0.0
Currently DB in noarchive mode, Need to put in archive Mode
What are additional precautions need to take in case of ASM for managing archive modeI would recommend creating a new ASM diskgroup and assign Flash recovery area to this group. This is part of ASM best practices as in case your Data diskgroup goes, you can use RMAN backups/archivelogs for recovery purpose.
-Amit
http://askdba.org/weblog/ -
RECOVERY IN NOARCHIVE LOG MODE
Dear all,
Please help me in solving this recovery issue :
My database is : oracle 8i server ent.edition
database runs on windows 2000
db confgiured in no archive logmode
when I start the database today :
am getting the following error :
O/S-Error: (OS 23) Data error (cyclic redundancy check).'
error 1242 detected in background process
ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode
ORA-01114: IO error writing block to file 2 (block # 1936)
ORA-01110: data file 2: 'c:\ORACLE\ORADATA\ORACLE\RBS01.DBF'
ORA-27072: skgfdisp: I/O error
OSD-04008: WriteFile() failure, unable to write to file
O/S-Error: (OS 23) Data error (cyclic redundancy check).
this tablespace rbs is defined only for rollback segments..
since db in noarhicve log mode, I cant able to take the datafile offline.. I tried doing
ALTER DATABASE RECOVER
which resulted in the above error .
I have valid 1 month old cold backup..
when I try to drop the tablespace, it fails with the above error.. .
Please guide me as this is the production database..
Thanks in advance
Please help me
KaiWere you able to achieve a NORMAL or IMMEDIATE shutdown of the database ?
In that case the Rollback segments are not required at startup.
So,
1 comment out the entry "rollback_segments=...(namesofrollbacksegments)"
from the init.ora
2. connect / as sysdba and STARTUP MOUNT;
3. ALTER DATABASE DATAFILE '<filenameforRBS>' OFFLINE DROP ;
4. ALTER DATABASE OPEN;
Additional steps : CREATE ROLLBACK SEGMENT SYS_RBS01
TABLESPACE SYSTEM;
ALTER ROLLBACK SEGMENT SYS_RBS01 ONLINE;
5. DROP TABLESPACE RBS ; (check the name of the tablespace)
6. CREATE TABLESPACE RBS (or NEWRBS) DATAFILE ....
7. CREATE ROLLBACK SEGMENT ........ and create multiple segments in
the new RBS tablespace
8. SHUTDOWN
9. Edit init.ora to set the rollback segment names again
10. STARTUP
HOWEVER if your database shutdown was not normal or immediate but an
abort, Oracle would try to do an Instance Recovery. In that case, you would
need to use "_corrupted_rollback_segments" and may lose data consistency.
Check MetaLink for notes on that. But first check your shutdown and see if
you can follow the steps suggested by Sybrand and me.
Added additional steps for SYS_RBS01 in the SYSTEM
tablespace for any actions on the RBS tablespace.
Message was edited by:
Hemant K Chitale -
Duplicating DB with RMAN,DB mode:NOARCHIVE LOG?
Hello,
I want to get a duplicate database on a remote server machine with same file structure by using internet of VPN(virtual private network). My question is ...
can we duplicate the database to remote server if the Database is in NOARCHIVELOG MODE ??
I have surffed on net for the same i got the method to duplicated the database but not sure weather i can do that in noarchivelog mode !
Regarding the steps if anyone has some better ideas to perform duplication of Database with RMAN or any other tool let me know or any more optimized steps ....will be appreciated. But please keep this point that the database is in norachivelog mode.
ORACLE 10g R2
Windows server 2003 32bit
Thanks in advance....
Regards,
DBA4If the database is in noarchivelog mode, then you can only take offline backup of database through RMAN in the mount state. Previously database shouldn't be shutdown
abnormally.
SQL> select LOG_MODE from v$database;
LOG_MODE
NOARCHIVELOG
1 row selected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 209715200 bytes
Fixed Size 1289748 bytes
Variable Size 138412524 bytes
Database Buffers 67108864 bytes
Redo Buffers 2904064 bytes
Database mounted.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining options
D:\Test>rman target /
Recovery Manager: Release 10.2.0.3.0 - Production on Mer. Mai 30 19:46:13 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: MIKA (DBID=1492747861, not open)
RMAN> backup database;Now move that backup to another machine, and restore this backup.
On the target machine, do the following steps:
D:\Test>rman target /
rman>RUN
STARTUP NOMOUNT FORCE;
allocate channel d1 type disk;
RESTORE SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP NOMOUNT;
RESTORE CONTROLFILE;
ALTER DATABASE MOUNT;
RESTORE DATABASE;
ALTER DATABASE OPEN RESETLOGS;
regardsregards -
Incremental backup in noarchive log
Dear all,
Two backup script is to be written
1. for 0 level incremantal backup or full backup
2. level 1 incremantal backup
first file:
run
backup incremental level 0 database;
crosscheck backupset;
second file
run
backup incremental level 1 database;
crosscheck backupset;
Correct me please.
Also is it possible that I do it in this manner
run
backup incremental level 1 datafile 1;
backup incremental level 1 datafile 2;
and so on
thanks and regards
SLHi
One thing to note: In order to take incremental backups when in noarchivelog mode, you must run RMAN with the database shutdown:
http://download-uk.oracle.com/docs/cd/B19306_01/backup.102/b14192/bkup004.htm#sthref383
Cheers
B. -
Tuning of Redo logs in data warehouses (dwh)
Hi everybody,
I'm looking for some guidance to configure redo logs in data warehouse environments.
Of course we are running in noarchive log mode and use direct path inserts (nologging) whereever possible.
Nevertheless every etl process (one process per day) produces 150 GB of redo logs. That seems quite a lot compared to the overall data volume (1 TB tables + indexes).
Actually im not sure if there is a tuning problem, but because of the large amount of redo I'm interested in examining it.
Here are the facts:
- Oracle 10g, 32 GB RAM
- 6 GB SGA, 20 GB PGA
- 5 log groups each with 1 Gb log file
- 4 MB Log buffer
- every day ca 150 logswitches (with peaks: some logswitches after 10 seconds)
- some sysstat metrics after one etl load:
Select name, to_char(value, '9G999G999G999G999G999G999') from v$sysstat Where name like 'redo %';
"NAME" "TO_CHAR(VALUE,'9G999G999G999G999G999G999')"
"redo synch writes" " 300.636"
"redo synch time" " 61.421"
"redo blocks read for recovery"" 0"
"redo entries" " 327.090.445"
"redo size" " 159.588.263.420"
"redo buffer allocation retries"" 95.901"
"redo wastage" " 212.996.316"
"redo writer latching time" " 1.101"
"redo writes" " 807.594"
"redo blocks written" " 321.102.116"
"redo write time" " 183.010"
"redo log space requests" " 10.903"
"redo log space wait time" " 28.501"
"redo log switch interrupts" " 0"
"redo ordering marks" " 2.253.328"
"redo subscn max counts" " 4.685.754"
So the questions:
Does anybody can see tuning needs? Should the Redo logs be increased or incremented? What about placing redo logs on Solid state disks?
kind regards,
Mirkouser5341252 wrote:
I'm looking for some guidance to configure redo logs in data warehouse environments.
Of course we are running in noarchive log mode and use direct path inserts (nologging) whereever possible.Why "of course" ? What's your recovery strategy if you wreck the database ?
Nevertheless every etl process (one process per day) produces 150 GB of redo logs. That seems quite a lot compared to the overall data volume (1 TB tables + indexes).This may be an indication that you need to do something to reduce index maintenance during data loading
>
Actually im not sure if there is a tuning problem, but because of the large amount of redo I'm interested in examining it.
For a quick check you might be better off running statspack (or AWR) snapshots across the start and end of batch to get an idea of what work goes on and where the most time goes. A better strategy would be to examine specific jobs in detail, though).
"redo synch time" " 61.421"
"redo log space wait time" " 28.501" Rough guideline - if the redo is slowing you down, then you've lost less than 15 minutes across the board to the log writer. Given the number of processes loading and the elapsed time to load, is this significant ?
"redo buffer allocation retries"" 95.901" This figure tells us how OFTEN we couldn't get space in the log buffer - but not how much time we lost as a result. We also need to see your 'log buffer space' wait time.
Does anybody can see tuning needs? Should the Redo logs be increased or incremented? What about placing redo logs on Solid state disks?Based on the information you've given so far, I don't think anyone should be giving you concrete recommendations on what to do; only suggestions on where to look or what to tell us.
Regards
Jonathan Lewis -
Hi all DBA guys, Have a Nice day all
If i change archive log mode to no archive log mode, internally whats happen my database?.
Is this old archive log backup use for future if again convert no archive to archive log mode?
What's happen flashback if i change archive log mode to no archive log mode?
Regards
S.Azarazarmohds wrote:
Thanx lot,
why i asked this question means, rightnow you posted, this is feature of 10g i.e flashback database confiured when archive log mode is enabled...,so in this case
What's happen flashback if i change archive log mode to no archive log mode?S.Azar,
You should be clear about things that when you read notes from web, there can be a language mismatch. So the best is that search first over the oracle docs.
Now about your doubt, its a terminology mismatch which is happening here. To enable Flashback Database feature which is more persistent copy of the undo data , stored seperately in a FLB file, you MUST have to have archivelog mode configured in your db. Without this, you can't enable the Flashback Database feature. And you can't switch to noarchive log mode as well if you have Flashback Database mode on.
The other thing ( which I guess Anurag was mentioning ) is the normal Flashback feature which relies on Undo data stored in the undo tablespace. This solely is based on teh undo data and doesn't depend on the archive/nonarchive log mode of the database. But this is limited to that data and to that time period up till which you can store the undo data in your undo tablespace.
HTH
Aman.... -
Script for automatic delete of archive logs/redologs
Hi Experts,
Do you have any idea on how to create a shell script. Actually the function of it, is to automatically deletes the archive logs/redologs if reaches the limit. Or is there any parameter to change to set the automatic deletion of archive logs/redologs.
RegardsHi,
at first, archivelogs should always be saved to tape before you delete them. If you don't want to backup them, may be for a test system, you can suppress them in ORACLE instead to delete them later.
You can run the database in "NOARCHIVE LOG MODE". If you do so, the online redologs are not archived, they are still reused and overwritten. You can not run an online Backup, when the database is in noarchive log mode. If you want to backup the database, you have to run an offline backup.
Do not use the NOARCHIVE LOG MODE for production or developemet systems.
To change the archive log mode:
shutdown the database
startup mount;
alter database noarchivelog;
alter database open;
archive log list will show the actual status
regards Ulrich -
Get ORA-00368: checksum error in redo log block
Hi all,
I get an error ORA-00368: checksum error in redo log block when connecting to database and here is the error:
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 430757 change 1236507302 time 11/12/2009
09:55:35
ORA-00312: online log 4 thread 1: '/oradata02/tchad/redo4.log'
Note that we are in noarchive log mode.
Could you help on how to recover my database please or a doc if there is interesting somewhere.
Thank you
LucienotHi I don't have redo log duplex and here are the things i've done:
1. shutdown abort
2. ALTER DATABASE CLEAR UNARCHIVED LOGFILE '/oradata/.../redo3.log';
3. startup nomount;
4. alter database mount;
5. ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 4;
SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
3 NO ACTIVE
4 NO CURRENT
5 NO UNUSED
SQL> alter system switch logfile;
alter system switch logfile
ERROR at line 1:
ORA-01109: database not open
SQL> alter database open;
alter database open
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/oradata00/tchad/system01.dbf'
Thanks -
When occurs crash recovery,why use active online redo log not archived log?
If current redo log had archived, but it's still 'ACTIVE'. As we all know, archived log is just an archived copy of the current redo log which is still 'ACTIVE', they have the same data. But why use active online redo log not archived log for crash recovery?(I think, if crash recovery can use archived log, then whether the online redo log is 'ACTIVE' or not, it can be overwritten)
Quote:
Re: v$log : How redo log file can have a status ACTIVE and be already archived?
Hemant K Chitale
If your instance crashes, Oracle attempts Instance Recovery -- reading from the Online Redo Logs. It doesn't need ArchiveLogs for Instance Recovery.
TanelPoder
Whether the log is already archived or not doesn't matter here, when the instance crashes, Oracle needs some blocks from that redolog. Archivelog is just an archived copy of the redolog, so you could use either the online or achive log for the recovery, it's the same data in there (Oracle reads the log/archivelog file header when it tries to use it for recovery and validates whether it contains the changes (RBA range) in it what it needs).Aman.... wrote:
John,
Are you sure that the instance recovery (not the media recovery) would be using the archived redo logs? Since the only thing that would be lost is the isntance, there wouldn't be any archived redo log generated from the Current redo log and the previous archived redo logs, would be already checkpointed to the data file, IMHO archived redo logs won't participate in the instance recovery process. Yep, shall watch the video but tomorrow .
Regards
Aman....
That's what I said. Or meant to say. If Oracle used archivelogs for instance recovery, it would not be possible to recover in noarchive log mode. So recovery relies exclusively on the online log.
Sorry I wasted your time, I'll try to be less ambiguous in future -
new to oracle and need advice,
how to recover oracle when online redo log files are deleted.
DB is in NOARCHIVE LOG Mode. Its been running for three months. No backups of any kind available.
DB was "shutdown immediate" for server maintenance(all changes should be in datafiles).
All dbf (system other tablespaces etc) files except the-online-redo logs are preesnt and good. redo log files got deleted. How to recover.IF the SHUTDOWN IMMEDIATE was successful and was able to properly dismount and close the database, you can startup the database with a sequence as :
startup mount
recover database until cancel;
cancel
alter database open resetlogs;This is because
a. You need to recreate the online redo logs
b. Recreating the online redo logs is done only by an OPEN RESETLOGS operation
c. An OPEN RESETLOGS operation is permitted only after recovery that is either
i. an Incomplete Recovery
ii. using a Backup controlfile
In your case, the "recover database until cancel" simulates an Incomplete Recovery. The subsequent CANCEL command tells Oracle not to apply any redo logs. Thereafter, you can OPEN RESETLOGS.
Note : As I said, this is doable only if the SHUTDOWN IMMEDIATE was proper and complete. A Shutdown Immediate does not require subsequent Instance Recovery -- ergo, it does not require Redo Logs for the subsequent OPEN.
Maybe you are looking for
-
Sort field in equipment main screen
We have an equipment having some validity dates(Valid from: 20.11.2009 & valid to: 31.12.9999) . Whenever we enter sort field in the Location tab the validity start date changes to todays date (Valid from:10.06.2009). How we can avoid this changes of
-
i placed my ipad on top of my CPU with a music playing,i heard a crack on the sound and when i checked it,i can no longer hear a sound playing on my ipad.i tried to check place a headphone its still playing a sound but when i pull it out,wont play at
-
My iphone5 is getting hang frequently after updating ios8
After updating ios8 in my iphone 5,its getting hang frequently (3,4 times a day).i have reset the device twice but still facing problems.battery life was great in ios 7 but worse in this.please fix this.
-
How to move and paste file
-
hello, my problem is that my ipad mini, missing a pixel on screen, but has a very small grated on the side that does not even reach the screen, the warranty covers it? Translated with google translatoe I bought the ipad mini in "el corte inglés" , Ba